Introducere

Ce este testarea software?

Testarea este procesul de execuție a unui software pentru a decide dacă îndeplinește anumite cerințe și dacă produce rezultatele dorite. Testând se poate asigura calitatea și buna funcționare a unui software. Pe parcursul acestui proces se pot găsi bug-uri (defecte, erori) sau scenarii noi care nu au fost luate în considerare în momentul în care s-a întocmit documentația pe baza căreia s-a dezvoltat software-ul.

„Software testing is a process, or a series of processes, designed to make sure computer code does what it was designed to do and that it does not do anything unintended. Software should be predictable and consistent, offering no surprises to users.”

Glenford j. myers

De ce este testarea importantă?

Sistemele software produc schimbări profunde în fiecare aspect al existenței umane. Începând de la smart phone-uri, rețele de socializare și până la mașinile pe care le conducem, toate se bazează pe un software.

Un software care nu funcționează corect poate genera probleme majore cum ar fi pierderi financiare, degradarea reputației business-ului sau chiar vătămari corporale dacă este vorba de un sistem care ține de siguranța omului. Spre exemplu, ce s-ar întâmpla dacă o aplicație bancară ar calcula greșit rata dobânzii?

Manual testing vs automated testing

Testarea poate fi manuala sau automată. Ambele presupun evaluarea unui software sau a anumitor functionalități ale acestuia și identificarea bug-urilor (erorilor), respectiv a lipsurilor.

Pentru testarea manuală nu sunt necesare cunoștințe de programare, dar este necesară cunoașterea conceptelor de testare și o gândire analitcă pentru a crea scenarii de test. În general, testarea manuală presupune următoarele activități:

AcțiuneExemplu
Crearea unui set de cazuri de test – Test CasesTest Case 1: “Autentificarea pe website-ul X folosind credențiale valide”
Executarea software-uluiAccesează website-ul X sau pornește aplicația Y
Verificarea manuală a software-ului pe baza cazurilor de testClick pe butonul “Sign-in” și introduc user-ul și parola corectă
Compararea rezultatelor:
“Rezultatul obținut este cel așteptat?”
DA – test passed
NU – test failed
Exemplu test failed:

Rezultat așteptat: formularul pentru Login este afișat dupa apăsarea butonului Sign-in
Rezultat obținut: formularul pentru Login nu este afișat
Documentarea și raportarea bug-urilor / erorilorBug Report #1: butonul ‘Sign-in’ nu funcționează
Pași de reproducere:
– accesează Home page
– click pe butonul Sign-In
Rezultat așteptat:
– se deschide pagina cu formularul de Login
Rezultat obținut:
– pagina de Login nu este afișată

Testarea automată presupune utilizarea unui tool (program software) care execută automat un set de Test Cases. Un astfel de tool este capabil să introducă date în sistemul care este supus testării, să execute automat anumite acțiuni (ex: deschide un website, după care apasă un buton) și compară rezultatul obținut cu rezultatul așteptat fără a fi necesară intervenția umană. Acest tip de testare necesită cunoștințe tehnice și presupune mai multă muncă.

Testarea automata nu va înlocui testarea manuală, ea având scopul de a reduce numărul Test Case-urilor care trebuie testate manual. Mai mult, înainte de automatizarea unor teste este necesară testare manuală.

Pe lângă activitățile descrise mai sus, munca de tester mai presupune și o colaborare strânsă cu developerii din proiect și, in unele cazuri, discuții cu clientul pentru a identifica cerințele acestuia.