ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 83
Abonament PDF

“Practice what you preach” - cum folosim RPA în testare

Mihai Pantea
Senior Software Engineer @ UiPath



Adrian-Nicolae Popa
Tester @ UiPath



TESTARE


La UiPath dezvoltăm platforma numărul 1 de Robotic Process Automation (RPA), platformă utilizată în prezent de mii de companii din toată lumea pentru a-și automatiza procesele. În mod natural, suntem primii utilizatori ai acesteia. "Roboții" noștri software rulează procese de HR, de achiziții sau care țin de departamentul juridic, ajutându-i pe colegii noștri să se poată concentra pe activitățile cu valoare adăugată mai mare. Totuși, nu numai colegii din aceste departamente beneficiază de serviciile roboților noștri software, ci chiar și echipele de dezvoltare utilizează platforma pentru procesul de software development - orientat către partea de testare. Acest articol dorește să vă arate unul din modurile în care noi ne testăm munca cu propriul produs.

Cum funcționează platforma UiPath

Ecosistemul UiPath este foarte mare, iar o primă împărțire o putem face din punct de vedere funcțional:

Procesul de testare

În cele ce urmează, vă vom arăta cum decurge procesul de testare pentru o activitate dezvoltată de UiPath și cum încorporăm roboții în procesul de testare. Ca structură pentru această prezentare vom folosi piramida nivelurilor de testare definită în ISTQB:

Imaginea 1: Piramida nivelurilor de testare

Obiectul prezentului articol îl reprezintă testarea unor activități ce vor fi folosite ulterior în procese construite cu UiPath Studio.

Din punct de vedere structural, șablonul pentru implementarea unei activități conține trei componente dispuse ca proiecte individuale într-o soluție de MS Visual Studio. Prima componentă conține logica de business din spatele activității, fără detalii de implementare a activității propriu zise. Această din urmă sarcină revine celorlalte două componente specifice infrastructurii Workflow Foundation, respectiv o componentă care conține implementarea comportamentului activității, și o a doua care conține implementarea interfeței activității. Odată implementate cele trei componente, activitatea poate fi compilată și publicată pe feeduri de NuGet spre utilizarea în procese.

Acum că am lămurit ce testăm și cum vom prezenta întregul proces, putem începe.

Testele de componentă

Testele de componentă, implementate în special prin unit teste, cad în sarcina programatorilor. Din punct de vedere funcțional, ele se împart în două categorii:

O parte din testele dezvoltate de programatori ar putea fi catalogate drept teste de integrare, implementate pe infrastructura de unit teste, întrucât pentru a satisface nevoile de testare a funcționalității, ele interacționează printre altele și cu sistemul de fișiere.

Imaginea 3: Testarea unei activități în izolare

Testele de integrare

Odată trecute testele de componentă, intrăm în tărâmul testerilor. Testele de integrare au loc în timpul sprintului și urmează în mare parte etapele clasice ale unui proces de testing dintr-un sprint Agile sau Kanban: etapa de creare de cazuri de test, de executare a testelor, validarea defectelor iar, la final, testarea regresiilor.

Urmează partea și mai spectaculoasă: automatizarea făcută cu ajutorul RPA. Marele avantaj al automatizării testelor cu RPA îl reprezintă faptul că putem avea siguranța că scenariile automatizate vor reflecta acțiunile reale ale utilizatorilor. Până la urmă, avem de testat activități ce vor fi folosite într-un context de RPA, așa că, ce altă modalitate mai bună de a imita scenariile decât folosind RPA? Pe lângă acest aspect, natura testelor automate oferă contextul perfect pentru a ne îndepărta de modelul clasic (unii ar zice învechit) de testare, cu cazuri de test mari, pline de informații, greu de întreținut, raportare elaborată și de multe ori inutilă, în favoarea unor acțiuni inspirate din Rapid Software Testing: o modelare a obiectului testat bazată pe euristici, o testare mai creativă, orientată pe explorare.

Imaginea 4: Modelul de test pentru o funcționalitate

Imaginea de mai sus reprezintă modelul de test pentru o funcționalitate (Classify Document) după ideea promovată de James Bach, SFDIPOT. Ea presupune descrierea sau înțelegerea produsului în funcție de structură (Structure), funcții pe care le îndeplinește (Functions), date de intrare/ieșire (Data), interfețe (Interfaces), platforme (Platforms), operații pe care produsul le executa (Operations), dependența de timp (Time) - aceasta din urmă nefiind tratată în exemplu, pentru că nu se aplică în acest caz.

Pentru ca beneficiile să fie maximizate, a fost nevoie de o uniformizare a efortului de testare automată la nivelul întregii companii, în toate părțile componente ale produsului. Astfel că, după ce testele trec de review în GitHub, sunt merged în repository-ul corespunzător (testele de activități în repository-ul de activități, testele de Studio în cel de Studio, ș.a.m.d.), de unde vor fi rulate în diverse pipeline-uri din Visual Studio Team Services, pe diferite mașini virtuale cu varii combinații de sisteme de operare:

De asemenea, de-a lungul timpului s-au ridicat o serie de întrebări: cum putem optimiza testele astfel încât să fie scrise într-o manieră data-driven (orientată pe date), cum putem reduce codul duplicat generat de acțiunile necesare înainte și după rularea testelor, cum putem să depanăm mai bine problemele detectate de teste, cum putem exporta mai bine rezultatele. Astfel, s-a creat un cadru de rulare al testelor care permite filtrarea, controlul frecvenței de rulare, generarea de capturi de ecran sau video la apariția unei probleme, și altele.

Mai jos vă prezentăm un exemplu de test automat făcut în UiPath Studio pentru funcționalitatea Taxonomy Manager, un wizard de Studio care permite crearea și editarea de taxonomii (taxonomia este un fișier de tip JSON în care se definesc tipurile de document care urmează să fie procesate și câmpurile de interes pentru fiecare tip). Testele sunt scrise sub forma inspirată din principiile TDD de a scrie unit teste Arrange-Act-Assert (aranjare-acționare-verificare), fapt care ajută la structurarea uniformă a testelor și îmbunătățește lizibilitatea lor.

Intrând mai în detaliu, în secvența Arrange sunt grupate activitățile care nu au impact funcțional: se iau numele și identificatorul testului, se loghează începerea testului și se fac verificările necesare.

Urmează partea de acționare. Aici se efectuează pașii din care obținem rezultatul care va fi verificat: se deschide fereastra Taxonomy Manager, se creează grupul, categoria și tipul de document, iar apoi câmpul de tipul "Name" pe care vrem să-l testăm

Am ajuns și la verificarea rezultatelor, lucru care se face simplu, printr-o activitate de tip If, unde se compară taxonomia obținută în secvența anterioară cu o taxonomie salvată pe disk.

Testele de sistem

Testele de sistem sunt realizate de o echipă specializată numită (ironic pentru structura în care am ales să prezentăm procesul) echipa de integrare.

Aici, din nou, automatizarea joacă un rol central. Este punctul în care se strâng informații și scenarii automatizate de la toate echipele, iar testele sunt rulate într-o varietate de combinații de componente noi și vechi, pe diverse sisteme de operare. Acum se verifică, spre exemplu, și integrarea corespunzătoare a activităților noastre cu toate variantele de UiPath Studio, cum interacționează cu UiPath Orchestrator și cu un număr mai mare de roboți. Astfel se asigură atât stabilitatea produsului, cât și corecta funcționare și comunicare între numeroasele linii de dezvoltare.

Testele de acceptanță

Acest ultim nivel de testare este realizat de consumatori. Problemele sau sugestiile sunt comunicate fie pe forumul UiPath (cel mai folosit forum de RPA la ora actuală) sau pe canalele de suport de pe Slack.

Următorul pas

În articolul de față am descris un nou caz în care folosirea tehnologiei RPA dă rezultate concrete și ușor de măsurat. Într-adevăr, în cazul de față automatizarea procesului de testare cu RPA se potrivește ca o mănușă. Încheiem, însă, cu mențiunea că tehnologia RPA este în plină expansiune, iar un cadru pentru a susține testarea automată în mai multe direcții (aplicații web, desktop) va fi disponibil în viitorul apropiat. Ne referim la pachetul de activități de Computer Vision dezvoltat de UiPath, care folosește Machine Learning pentru a identifica componentele unui UI (interfață grafică) într-o manieră similară cu un utilizator, ceea ce va avea un impact major în stabilizarea testelor care interfațează cu UI-uri.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects