Testare funcțională

Prin testare funcțională (functional testing) se verifică dacă un software îndeplinește toate funcțiile pe care ar trebui să le îndeplinească conform unor cerințe (requirements) stabilite inițial.

Aceste funcții sunt definite în diferite documente pe care le găsim sub denumiri precum requirements, business specifications, functional specifications, use cases, epics, user stories, etc. În unele cazuri funcționalitățile nu sunt documentate sau sunt documentate parțial. Anumite funcționalități nu sunt documentate fiindcă este de la sine înțeles care sunt requirement-urile. Spre exemplu, funcționalitatea de autentificare (login) e evident că are scopul de a permite utilizatorului să își introducă user-ul/email-ul și parola pentru a putea accesa un website. Așadar, nu e obligatoriu ca această funcționalitate să fie documentată.

Testarea funcțională se poate practica la toate nivelele de testare doar că variază în funcție de fiecare:

  • Unit testing – testarea se va face la nivel de componentă și vor fi cerințe specifice acestui nivel
  • Integration testing – se testează cum funcționează două module care au fost integrate
  • System testing – se va considera tot produsul ca un întreg și se vor face teste end-to-end bazate pe requirements și pe experiența specifică domeniului
  • Acceptance testing – depinde de tipul de testare, dar în general testarea nu se va face bazat pe requirements fiindcă se dorește să se evalueze și cât de intuitiv este produsul software.

Focusul principal al testării funcționale este să se verifice comportamentul software-ului, deci va fi folosită tehnica black-box. Însă acest lucru nu înseamnă că testarea de tip black-box presupune doar testare funcțională. Tehnica black-box poate include și testare non-funcțională.