un proiect realizat de aspi


sustinuti de anis
 

Eu testez, tu testezi, el testeaza...


de Ovidiu Constantin, Linux/Unices Testing Manager,

Suntem implicati in IT, folosim calculatorul peste 10 ore pe zi, lucram cu studenti, power-useri, administratori, programatori. Auzim de proiecte noi, aplicatii, situri, sisteme de operare si limbaje de programare. De cate ori nu v-ati adresat colegului care lucreaza la cel mai cool proiect de care ati auzit vreodata spunandu-i "Vreau si eu sa vad ce faci", "Da-mi si mie o versiune" ?

Cum nimeni nu rateaza sansa de a-si arata munca unui prieten binevoitor, probabil ati si intrat in posesia cd-ului, arhivei, kit-ului. Si ati devenit, fara sa stiti, testeri.

Multi dintre voi ati auzit probabil de programe de beta-testing, versiuni beta la aplicatii, testare. Si totusi, ce este aceasta activitate de testare ? Si cine sunt testerii ?

Un prieten mi-a spus ca testerii sunt niste programatori frustrati. De fapt nu-i deloc asa, ba chiar pot afirma foarte raspicat ca un bun tester este un slab programator. Si invers. Si asta este un lucru foarte bun, testerii si programatorii se completeaza reciproc pentru a produce ceva de calitate - Aplicatia.

Activitatea de testare, desi usor de definit (am cautat pe Google "define:testing" si al doilea raspuns este "The process of exercising software to verify that it satisfies specified requirements and to detect errors." ), este un proces complex. Exista multe metode de testare, s-au scris o multime de articole si carti, exista grupuri de dicutii, liste de mail, cursuri. Faptul ca avem o multime de aplicatii care nu functioneaza perfect (nici pe departe perfect) ne demonstreaza ca nu este de ajuns.

Un test pe zi (Bastard Tester From Hell)

Acest articol nu va va spune cum se testeaza, n-o sa va insire cele x (unde x > 20) metode de testare. Nici nu isi propune sa va prezinte 10 pasi simpli pentru a deveni tester. O sa facem doar o incursiune in ziua unui tester ... sa-i spunem BTFH (Bastard Tester From Hell).

"Am ajuns la servici, si in timp ce-mi beau cafeaua am pornit clientul de mail. Iarasi 350 de mesaje... In timp ce sterg spam-urile care in ultimele cateva saptamani tot insista ca am castigat 1 milion de euro, ma gandesc daca n-ar trebui sa ma desubscriu de la cateva liste de discutie. Cred ca ar trebui, dar inainte sa decid de care din ele o sa ma despart, privirea imi aluneca pe folder-ul "Releases". 6 mailuri noi... hehe, cineva din echipa de dezvoltare a lucrat tarziu ieri."

"Lecturez in viteza changelog-urile: 2-3 bug-uri fixate (YES! s-a reparat si problema "aia" care ma sacaia de 2 saptamani!), cateva optimizari (uf... acum trebuie sa reiau testarea pentru nu-stiu-ce-for care s-a transformat in while). Destul sa ma amuz astazi toata ziua."

"Am salvat fisierele, le-am plasat in locul celor vechi pe calculatorul de testare si am pornit aplicatia. Emotie, emotie, si... merge. Toate procesele au pornit, erori n-am primit, programul face ce trebuie sa faca... Azi o sa fie o zi buna ."

"Bun, acum ca am terminat cu "Testarea de acceptanta", este cazul sa ma apuc de ceva mai serios. Imi pun castile pe urechi, dau drumul la [insert your favorite music here] si caut in teancul virtual de documente specificatiile produsului. Trebuie sa ma asigur ca in afara de bug-urile rezolvate, nu au disparut functionalitati prevazute sau cine stie... au aparut altele noi (orice programator o sa spuna "It's not a bug, it's a feature", orice tester o sa spuna exact pe dos). 2 ore mai tarziu constat multumit ca produsul face tot ceea ce a fost prevazut sa faca. Si chiar bine Pentru cei mai tehnici, aceasta a fost testarea functionala.

"Acum sa vad ce-i cu bug-urile alea. Dezvoltatorii sustin ca le-au rezolvat... dar cum pana acum nu i-am crezut niciodata, n-o sa incep azi. Ieri produsul se zapacea in 10 secunde daca-l supuneam la micul meu script, poate astazi este mai sigur de el. Rulez produsul, rulez scriptul si... si... si nimic. N-a patit nimic. Script-ul meu ucigas nu mai e bun de nimic. Bug-ul s-a rezolvat. Mai incerc de cateva ori, mai modific ceva variabile, dar produsul se incapataneaza sa ramana stabil. Asta e, 1-0 pentru dezvoltare."

"Cateva minute mai tarziu, dupa ce am trimis mailurile bucuroase de confirmare, m-am intors la script-ul meu. Ii dau un nume mai sugestiv si il plasez alaturi de celelalte script-uri care in zilele lor glorioase reuseau sa produca un crash in cateva minute. Acum le mai rulez din cand in cand sa ma asigur ca problemele vechi raman vechi. Asta s-ar numi regression testing."

"Este acum momentul sa las "programatorul frustrat" din mine sa se manifeste. Mintea mea diabolica va nascoci astazi alte teste, din ce in ce mai grele. Date malformate, mii de conexiuni simultane, zeci de megabytes de informatie de procesat. Scopul? Voi stresa la maxim aplicatia, zile si zile in sir, mwahahahaha. Daca reusesc sa blochez calculatorul dar nu si programul testat inseamna ca testul de anduranta a reusit si pot sa spun ca avem un produs final."

"- Ce-i faci saracului program ?"

"Este un coleg de la dezvoltare. A venit sa ma intrebe daca mergem cu totii sa programam si sa testam un algoritm de baut bere si m-a surprins in plina partida de maltratat aplicatia. Sting repede monitorul (dezvoltatorii sunt protectivi cand e vorba de programele lor...) si plecam."

Cam asa arata ziua unui tester. Daca ceea ce v-am povestit va intereseaza, daca v-ati vazut in locul acestui tester, de ce nu ati incerca si voi sa faceti asta? Nu este foarte greu, iar pentru cei pasionati este foarte distractiv.

Un bun tester este o persoana care poate sa (re)devina ignoranta, facand abstractie de cunostintele lui anterioare despre produs. Trebuie sa se adapteze repede la schimbari, dar sa pastreze un ochi critic, sa caute mereu ceea ce ar putea sa mearga rau intr-o situatie. Eventual legea lui Murphy "Daca ceva poate merge rau, o va face" sa-i fie filosofie . Sceptic si pragmatic, un tester se bazeaza pe ceea ce se poate observa si masura, isi poate sustine cu argumente opiniile , chiar daca de multe ori asta inseamna ca demonstreaza cuiva ca a gresit.


Bibliografie:

1. Google, http://www.google.com/
2. Brett Pettichord, "Testers and Developers Think Differently", articol in "Software Testing and Quality Engineering", ianuarie 2000, http://www.io.com/~wazmo/papers/testers_and_developers.pdf

Acest articol este publicat sub licenta "Creative Commons Attribution-ShareAlike 2.0", disponibila la http://creativecommons.org/licenses/by-sa/2.0/



Nota articolului:

3 din 170 voturi (170 voturi)

Nota ta:



Comentarii

Trimite

(fara subiect)

Foarte bun articolul. Într-o măsură destul de mare reflectă experienţa mea de astă vară ca QE la Adobe, şi pot spune că într-adevăr merită. Ca o scurtă schimbare de perspectivă sau ca o eventuală direcţie de dezvoltare în carieră, zona de testare (sau Quality Assurance cum i se mai spune) cred că e ceva de încercat :)

Adauga un comentariu:

Nume: *
Email: *
Subiect:
Comentariu: *

Cod anti-spam: *
(Acest cod previne utilizarea formularului pentru trimiterea mesajelor de tip spam)
Cod de verificare
Daca codul nu este lizibil, click aici pentru incarcarea unui nou cod.


 
 

index recomanda site termeni si conditii confidentialitate ASPI.ro powered by Net Interaction


Parteneri principali
Bitdefender