Detectiv printre aplicatiile software
Se poate vorbi despre un "traseu clasic" in cazul unui Software QA Specialist? Care a fost traseul dv. profesional?
Nu stiu daca se poate vorbi despre un traseu clasic. Va pot povesti traseul pe care l-am urmat eu. Studenta fiind la Cibernetica, in anul V, m-am angajat ca Tester Engineer la una dintre marile companii romanesti de software, Softwin. Am inceput de jos, cum se zice, de la pozitia de Tester. Aici am invatat cum se realizeaza testarea, care sunt principalele metode de testare, ce inseamna de fapt Asigurarea Calitatii.
Am avut norocul sa fiu inconjurata de oameni inteligenti, de la care am avut ce invata. Sarcina mea era sa testez diversele aplicatii software pe baza unui plan bine realizat, sa raportez si sa urmaresc defectele rezultate in urma testarii.
In timp, pe baza experientei acumulate, am devenit Software QA Specialist. La responsabilitatile de Tester Engineer s-au adaugat multe altele noi. Pot sa spun ca practicile deprinse la Softwin mi-au fost de mare ajutor. Desi aveam o experienta de numai doi ani in domeniu, in 2002 mi s-a oferit sansa sa devin QA Specialist la firma Team Code Romania. Fiind singurul QA Specialist din firma, mi-am organizat munca de la zero.
Prin ce difera pozitia de QA Specialist de cea de Tester?
Un QA Specialist urmareste imbunatatirea continua a calitatii proceselor din cadrul firmei, elaboreaza planul de asigurare a calitatii, stabileste prioritatile de testare si tipurile de teste ce vor fi executate (de integrare, functionale, de sistem, de incarcare, de usurinta in utilizare). El decide succesiunea testelor, scopul si limitele lor, mediul de testare – cerintele software si hardware, timpul necesar testarii.
De asemenea, ii stau in sarcina verificarea documentelor rezultate din fazele de analiza si design, evaluarea si raportarea rezultatelor obtinute, masurarea calitatii produsului final si elaborarea documentatiei pentru utilizator.
Cum se realizeaza testarea unui produs software?
Metodele si tehnicile de testare se dezvolta o data cu dezvoltarea aplicatiilor software. In prezent, testarea se realizeaza utilizand fie strategia black box (cand se urmareste numai comportamentul functional al produsului), fie strategia white box (se analizeaza comportamentul programului avand la dispozitie codul sursa al acestuia). Nici o metoda de testare nu garanteaza corectitudinea produselor software, insa creste probabilitatea ca acestea sa se incadreze in limitele de calitate cerute.
Initial, testarea se facea integral manual, fiind considerata singura solutie de a descoperi eventualele defecte. Ulterior, testarea manuala a fost ajutata si de testarea automata. Testele automate executa practic o secventa de actiuni cu interventie umana minima si pot simula utilizarea unei aplicatii in conditii reale, de simultaneitate ridicata.
Exista o serie de controverse legate de alternativa "manual" sau "automat". Unii specialisti considera ca testele automate sunt foarte costisitoare in raport cu utilitatea lor si, prin urmare, recomanda foarte putin utilizarea ei. Altii recomanda ca testarea sa se faca 100% automat.
Adevarul este ca fiecare firma aplica mai mult sau mai putin testarea automata, in functie de specificul fiecarui proiect, dar si de disponibilitatile financiare. Aplicatiile de testare automata sunt destul de scumpe si putine firme ajung sa investeasca in achizitionarea lor.
Se gasesc usor oameni care sa se priceapa la testare?
Da si nu. Multi se pricep, dar putini raman in domeniu. Foarte multi vad testarea ca o pista de lansare pentru a deveni programatori. Este, totusi, gresit sa privesti un Tester ca fiind un Junior Developer. In realitate, abilitatile unui Tester vin in contradictie cu abilitatile unui dezvoltator. De exemplu, programatorii sunt nevoiti adesea sa fie specialisti intr-o anumita tehnica, sa cunoasca foarte bine partea pe care o dezvolta, pe cand un tester trebuie sa fie capabil sa invete rapid produsul pe care-l testeaza, fara sa stie foarte multe despre arhitectura lui interna.
Este un job "legat" de un anume tip de companie?
Da, Software QA Specialist este "legat" de companiile care produc si comercializeaza software. Totusi, dintre acestea, nu toate au specialisti in QA. Existenta acestei pozitii e data de politica de asigurare a calitatii a companiei si e legata de nivelul ei de maturitate. Sunt firme care considera ca verificarile pe care, in mod normal, le-ar face un QA Specialist pot fi facute de project manageri, de programatori sau… de cine se nimereste.
Deci, as spune ca job-ul e legat de acele companii care constientizeaza ca procesele software sunt prea complexe pentru a lasa verificarea calitatii pe mana nespecialistilor. Aceste firme au ajuns sa gandeasca asa fie pentru ca le-au cerut-o clientii, fie pentru ca au un management cu viziune, sau, pur si simplu, au vazut la altii ca asa trebuie facut.
Cum arata o zi de munca din viata dv.?
O zi obisnuita la serviciu depinde foarte mult de faza in care se afla aplicatia software: analiza, design, codare sau testare. Daca ne referim strict la faza de testare, o zi obisnuita poate incepe cu analiza modulelor care trebuie testate in acel moment, cu extragerea informatiilor din planul de teste legate de aceste module si se continua cu realizarea efectiva a testarii pe baza planului.
Cu ce departamente colaborati cel mai des?
Cel mai des lucram cu departamentul de dezvoltare, in special cu managerul de proiect. Este foarte important ca un manager de proiect sa inteleaga importanta testarii in realizarea unui produs de calitate.
Cui va subordonati? Catre ce pozitii se poate avansa?
Un QA Specialist se subordoneaza direct QA Managerului, pozitie spre care se poate usor avansa. La randul lui, un QA Specialist poate avea unul sau mai multi subordonati.
Cat de des se intampla sa detectati erori in aplicatiile software? Ce urmeaza dupa ce le gasiti?
Defectele se gasesc pe tot parcursul fazei de testare, la inceput mai multe, la sfarsit mai putine. Se stie ca nu exista aplicatie fara defecte. Important este ca toate defectele depistate sa fie rezolvate si cerintele aplicatiei sa fie indeplinite.
Erorile gasite in aplicatii sunt raportate si urmarite intr-un sistem de gestiune a defectelor; programatorul caruia i-a fost incredintat defectul il va rezolva si ii va include solutia in versiunea urmatoare de produs. Problemele fixate vor fi retestate in noua versiune. Testarea de regresie va urmari daca problemele detectate au fost bine rezolvate. Evident, se vor analiza si modulele sau functiunile direct sau indirect afectate prin solutionarea acestor probleme.
Cunostintele de programare sunt obligatorii in aceasta ocupatie?
Da si nu. Depinde de la firma la firma, in functie de specificul proiectelor. Cunostintele de programare contribuie la o mai buna intelegere a procesului de dezvoltare software, a punctului de vedere al dezvoltatorului si reduce considerabil efortul in cazul utilizarii si dezvoltarii de teste automate.
Care sunt calitatile pe care trebuie sa le aiba un Software QA Specialist?
Printre principalele calitati pe care trebuie sa le aiba un QA Specialist se numara: atentia la detaliu, rabdarea, flexibilitatea, capacitatea de a invata rapid si o foarte buna comunicare cu oamenii din echipa, atat cu cei din echipa de testare, cat si cu cei din echipa de dezvoltare.
Pozitia de QA Specialist necesita o foarte buna capacitate de analiza, precum si cunoasterea si aplicarea principiilor si a tehnicilor de asigurare a calitatii. Este necesara, desigur, si cunoasterea caracteristicilor software si a procesului de dezvoltare software.
Cat de importanta este atentia pentru detalii in aceasta profesie?
Detaliile sunt foarte importante, dar prea multa atentie la detaliu poate distrage atentia testerului de la ceea ce este cu adevarat important. Se ajunge la o greseala clasica: se consuma timp cu corectarea unor aspecte mai putin critice, in loc sa se trateze zonele care au un risc si impact mare pentru client. Rezultatul este deturnarea sau chiar neindeplinirea misiunii testarii.
Un tester bun este unul care observa "ceva ciudat" si actioneaza asupra acestui lucru. Poate ca este vorba de ceva minor la inceput, dar care, investigat mai indeaproape, poate duce la descoperirea unei erori grave.
Este foarte important nu numai sa testezi ce trebuie sa faca aplicatia, ci si cum reactioneaza ea atunci cand un utilizator nu face ceea ce trebuie (de exemplu, introducerea de litere in campuri care ar trebui sa accepte doar numere).
Din ce unghiuri este abordata calitatea unui produs software?
Un produs de calitate este unul care indeplineste caracteristicile functionale si de business ale clientului. Testarea abordeaza fiecare dintre caracteristicile de calitate ale unei aplicatii software: functionalitate, fiabilitate, utilizabilitate, eficienta, usurinta la intretinere, portabilitate.
Cum te poti perfectiona in aceasta profesie?
Exista numeroase cursuri de specializare, doua mastere in domeniu, foarte multa literatura de specialitate, exista standardele de calitate… Cine cauta, gaseste.
Liliana Neghiu
Experienta profesionala
- Octombrie 2002 – prezent, Quality Assurance Responsible, Team Code Romania;
- Octombrie 2000 – octombrie 2002, Quality Assurance Analyst, Softwin.
Studii
- 1996 – 2001 Academia de Studii Economice Bucuresti, Facultatea de Cibernetica, Statistica si Informatica Economica, specializarea Cibernetica.
Abilitati
- Operare: MS Office (Word, Excel, PowerPoint, Outlook, IE), Windows Platform, Adobe Photoshop;
- Programare: SQL Server, XML, HTML, Rational Robot Test;
- ISO 9000 (principii si metode de implementare.