TSM - Software Testing World Cup

Lavinia Cazacu - Quality Assurance Manager

Software Testing World Cup este o competiție internațională de testare software, aflată la a doua ediție. Competiția se desfășoară în două etape: preliminariile au loc la nivel de continent (Africa, Asia, Europa, Oceania, America de Nord și America de Sud) și se poate înscrie oricine, iar echipele câștigătoare se înfruntă într-o fază finală ce va avea loc în cadrul conferinței Agile Testing Days. Anul acesta preliminariile au avut loc între aprilie și iulie, iar etapa finală va avea loc la jumătatea lunii noiembrie.

Irina a fost prima care a auzit de concurs și nu a fost greu să ne convingă. Nici una dintre noi nu mai participase la vreo competiție de testare și am luat-o ca pe o provocare: o experiență distractivă și interesantă atât pentru echipă cât și pentru fiecare din noi în parte. Așa că, pe 13 iunie 2014 noi, Irina, Ileana, Sanda și Lavinia, am participat la acest concurs neobișnuit, unde echipe de testare software din Europa și-au petrecut o seară de vineri testând o aplicație timp de trei ore.

Fiecare echipă înscrisă în concurs a avut acces la aceeași aplicație software. Organizatorii au pus la dispoziția echipelor un proiect dedicat unde trebuiau să înregistreze defectele găsite, iar la finalul sesiunii de testare trebuia trimis un raport de testare în formatul dorit. Din mai mult de 100 de echipe care au participat la evenimentul din Europa, echipa noastră am fost câștigătoare.

Deși nu ne-am gândit nici măcar o clipă la clasamentul final, rezultatul ne-a bucurat foarte mult pentru că nu ne așteptam. Imediat după ce ne-am înscris la concurs, realitatea ne-a mai tăiat din entuziasmul inițial. Nu aveam timp suficient să ne întâlnim, erau numeroase detalii de pus la punct și concursul se desfășura la ore prea târzii - șapte seara într-o vineri- pentru a mai putea fi eficiente. La urma urmei, toate aveam obligații profesionale de respectat și vieți personale de trăit.

Dar am reușit să ne întâlnim de câteva ori și să punem la punct câteva detalii. Nu prea multe, dar suficiente cât să avem sentimentul că am luat în serios concursul acesta. Dar nici prea în serios, pentru a nu suferi prea mult în cazul unui eșec.

Ziua concursului nu e niciodată așa cum ți-ai dori să fie. Cu toate acestea, am reușit să ne punem de acord asupra unei schițe a raportului, urmată de o cină plăcută chiar înaintea concursului. Din experiența noastră cel mai bun energizant e întotdeauna timpul petrecut între prieteni. Au urmat trei ore de efort susținut la capătul cărora nu ne-am simțit deloc ca o echipă câștigătoare. Pe parcursul acelor ore ne-am dorit să facem un milion de lucruri și nereușind să le acoperim pe toate, ni s-a părut că ne-am ratat obiectivul. Ne-a fost greu să găsim abordarea perfectă pentru aplicația pe care o testam și am fost mult prea absorbite de ideile noastre, mereu pe urma vreunui posibil defect.

Aplicația pe care trebuia să o testăm era un demo pentru un instrument de vânzare al cărui concept era absolut nou pentru noi și a cărui logică de business nu era chiar intuitivă. Mai mult, aplicația avea dependințe de date reale și nu îți puteai genera datele de test pe loc. A trebuit să căutăm companii reale din anumite țări și să înțelegem specificul formatelor din acele țări (nume legal, date de contact etc.), urmând ca apoi să integrăm acele reguli în scenariile noastre de testare. O dată introduse detaliile unei companii reale, dacă aplicația o recunoștea ca validă, ți se oferea posibilitatea de a genera un profil pentru ea, conținând detalii cum ar fi amprenta online a companiei, competitori și puncte slabe.

Generarea profilului dura cam 10 minute, dar într-o sesiune de testare limitată de timp, nu ai luxul de a aștepta după un proces. De multe ori am uitat să verificăm imediat și multe flow-uri de testare s-au încheiat fără a putea închide bucla și fără a putea analiza datele de profil. Neavând timp să așteptăm după rezultate, am sacrificat aspecte pe care într-un mediu real de testare nu le-am fi ignorat. Întregul produs era plin de defecte și unele erau atât de evidente încât ne-am întrebat dacă să pierdem timp raportându-le sau să ne continuăm \"vânătoarea\". Chiar dacă era o aplicație reală, în producție, am avut sentimentul că ceea ce testam a fost pregătit special pentru eveniment, îmbogățită cu tot felul de probleme și defecte discrete.

Au fost unele arii în care am fi putut explora dincolo de suprafață și am fi putut intra chiar în logica de business, dar, din nou, timpul nu a fost de partea noastră. De asemenea, multe aspecte de utilizare a aplicației ar putea fi îmbunătățite. De exemplu, aplicația are ca utilizator principal personalul din vânzări, probabil obișnuit cu o anumită funcționalitate, dar perioada de învățare ar putea fi semnificativ micșorată folosind câteva îmbunătățiri standard (hint-uri, o pagină de help, navigare mai ușoară pe ecran).

Un aspect cheie al concursului l-a reprezentat raportul de testare, document ce trebuia trimis la finalul sesiunii. Acesta putea fi pregătit în prealabil, dar cât de mult poți anticipa, având în vedere că urma o sesiune de trei ore de explorare a unei aplicații pe care nu o cunoșteam? Conținutul unui raport de testare poate fi de fiecare dată un subiect de discuții. Există template-uri care capturează ceea ce ai făcut și rezultatele obținute, dar la final, tot trebuie să-ți cunoști publicul și să-ți prezinți datele în funcție de așteptările lor.

Am ales să ne concentrăm exclusiv pe ceea ce putem livra până la finalul sesiunii, pe feedback-ul individual și pe statisticile defectelor găsite.

Am generat patru pagini de raport: prima conținea feedback-ul general pe aplicație, a doua, rezultatele pe funcționalitățile testate (număr de defecte, timpul petrecut în fiecare arie și feedback explicit pe fiecare secțiune), a treia pagină era dedicată defectelor, cu un grafic care detalia severitatea și tipul lor (funcțional, performanță, interfața cu utilizatorul), iar în ultima pagină am inclus detalii despre mediul de testare, deoarece, chiar dacă nu a fost cerut, am considerat că este important să arătăm pe ce browser-e și pe ce dispozitive s-a făcut testarea. Nu am intrat în detalii mai mult de atât și raportul a fost până la urmă singurul lucru de care am fost mulțumite că a ieșit cum ne-am plănuit.

Privind înapoi, e inevitabil să nu te gândești că \"suntem cele mai bune\", dar încercăm și să ne dăm seama de ce anume am câștigat. Nu suntem experți în testare și nici nu pretindem a fi. Comunitatea testerilor e atât de vastă încât mereu vei găsi oameni mai pasionați decât tine, mai creativi sau mai talentați decât vei putea fi vreodată. E genul de profesie unde spontaneitatea e un factor diferențiator și unde chiar trebuie să te diferențiezi continuu. Ca profesionist în domeniu, trebuie pur și simplu să testezi mai bine, mai inteligent și mai rapid decât restul.

Sub presiunea momentului, timpul extrem de scurt ne-a făcut să ne îndoim de rezultate. Nu ne-am simțit nici mulțumite, nici încrezătoare în rezultatul muncii noastre. Ne-a lipsit siguranța pe care ți-o dă munca organizată, structurată, când poți urmări gradul de acoperire și îți poți calcula deciziile. Din când în când, am făcut schimburi de idei, ne-am acordat câteva secunde pentru a ne verifica între noi. Într-un interval atât de scurt nu prea ai cum să pregătești foarte multe și e important să ai încredere în ceilalți membri ai echipei și să-ți urmezi instinctele.

Totul in jurul nostru se întâmplă într-un ritm alert și chiar dacă testarea în general are nevoie de muncă extensivă, aici a trebuit să găsim moduri de a livra rezultate relevante în timpul extrem de scurt pe care l-am avut la dispoziție.

Revenind la concurs după câteva luni și citind despre experiența altor echipe am realizat că nu suntem echipa cu cel mai mare număr de defecte, nici cu cele mai critice. Nu am câștigat nici măcar unul din premiile speciale. Deci cum am câștigat de fapt? Este o întrebare pe care ne-am tot pus-o și un răspuns e că atunci când îți place foarte mult ceea ce faci, rezultatele se văd.

Experiența acestui concurs ne-a arătat cât de răsfățate suntem în munca de zi cu zi, când avem atât de mult timp la dispoziție pentru a ne construi strategia de testare și pentru a putea analiza produsul de testat cu suficientă profunzime. De asemenea, ne-a arătat cât de importantă e în situații limită comunicarea și încrederea între membrii echipei, fără de care am fi irosit timp prețios și nu am fi reușit să terminăm la timp.

Dar cel mai important, etapa continentală a Software Testing World Cup ne-a deschis apetitul pentru acest gen de exerciții, ne-a făcut să reflectăm asupra ariilor unde am dori să ne aprofundăm cunoștințele și cu siguranță ne-a îmbogățit stilul de testare.

Echipa noastră va participa în noiembrie la etapa finală a competiției. Indiferent de rezultat, ne simțim câștigătoare și am dori să încurajăm cât mai mulți testeri să ia parte la astfel de concursuri, unde experiența în sine este mult mai valoroasă decât premiile sau locul în clasament.