Tipurile de testing bazate pe accesul la codul sursă definesc nivelul de transparență pe care testerul îl are asupra sistemului testat. Această distincție este crucială pentru a stabili corect așteptările privind acoperirea testelor, costurile și complexitatea tehnică necesară. Înțelegerea lor te ajută să alegi strategia optimă în funcție de faza proiectului și de resursele disponibile.
Ce trebuie să știi
- Black Box Testing: Testerul nu are acces la codul sursă sau la structura internă. Se testează doar funcționalitatea externă, bazându-se pe specificații și cerințe. Este ideal pentru validarea comportamentului din perspectiva utilizatorului final.
- White Box Testing: Cunoscut și ca testing structural, oferă acces complet la codul sursă. Testerul verifică fluxul logic, ramificările și acoperirea codului. Este esențial pentru testele unitare și pentru identificarea bug-urilor ascunse în logica internă.
- Grey Box Testing: O combinație între cele două abordări anterioare. Testerul are o cunoaștere parțială a implementării interne (de exemplu, baze de date sau API-uri), dar testează interfața utilizatorului. Este frecvent în testele de integrare și sistem.
- Scopul fiecărei metode: Black box validează „ce” face sistemul, white box verifică „cum” este construit, iar grey box echilibrează viteza de execuție cu profunzimea analizei.
- Interdependență: Nicio metodă nu este superioară celeilalte; ele se completează. Un plan bun de testare utilizează toate trei tipurile pentru a maximiza detectarea defectelor.
Exemplu concret
Imagină-ți că testezi un formular de login.
- Black Box: Introduci un nume de utilizator și o parolă greșită și verifici dacă apare mesajul de eroare „Autentificare eșuată”.
- White Box: Analizezi codul backend pentru a vedea dacă funcția
checkPassword()compară hash-urile corect și dacă există vulnerabilități de SQL Injection. - Grey Box: Verifici direct în baza de date dacă contul utilizatorului este marcat ca
lockeddupă 3 încercări eșuate, fără a citi întregul cod sursă.
Cum să înveți
- Exersează scrierea de cazuri de testare pentru aplicații simple (ex: un calculator) folosind doar interfața vizibilă, apoi încearcă să ghicești logica din spate.
- Studiază concepte de bază de programare (variabile, bucle, condiții) pentru a înțelege cum arată un „white box” test, chiar dacă nu scrii cod complex.
- Participă la sesiuni de review al codului sau discută cu dezvoltatorii despre arhitectura aplicației pentru a dezvolta mintalitatea „grey box”.