Software-ul este testat pentru a confirma că toate intrările valide sunt interpretate și executate corect, în timp ce intrările incorecte sunt eliminate. Testele verifică, de asemenea, că rezultatele sunt generate eficient și că un volum mare de date poate fi gestionat fără sughițuri. Testarea poate fi efectuată manual sau electronic. Testarea automată a software-ului implică utilizarea unui software specializat pentru a testa codul aflat în curs de dezvoltare. O astfel de testare aduce beneficii procesului de dezvoltare a software-ului, atunci când este aplicată judicios.
Testele manuale depind de meticulozitatea persoanelor care efectuează testarea. Testarea manuală a software-ului necesită timp și necesită un raport semnificativ între testeri și dezvoltatori pentru majoritatea aplicațiilor. Acest lucru crește costul dezvoltării. În plus, testarea manuală are limitarea că cantități mari de date sau un număr mare de utilizatori sau intrări simultane nu pot fi testate cu ușurință.
Testarea automată a software-ului controlează în mod programatic execuția testului și evaluarea rezultatelor. Software-ul de testare oferă intrări, care corespund diferitelor condiții, la software-ul care este evaluat. Pentru fiecare set de condiții, software-ul de testare compară rezultatele reale cu rezultatele dorite și menține statistici privind comportamentul agregat al software-ului țintă. După o „rulare”, software-ul de testare oferă de obicei rezultate rezumative, astfel încât oamenii să poată determina rapid ce să remedieze.
În testarea automată a software-ului, sarcinile obositoare implicate în testare, cum ar fi autentificarea sau introducerea de date precum adresele poștale, sunt mecanizate. Combinații vaste de condiții pot fi testate în fiecare cursă. Deoarece testarea automatizată implică utilizarea computerelor și a software-ului, aceasta permite, de asemenea, simularea unor încărcături mari de date de intrare sau intrări extrem de rapide. Fiecare rulare a unui număr de condiții de testare poate fi finalizată în câteva ore. Prin urmare, testarea automată este foarte utilă pentru testarea regresiei, care asigură că o nouă caracteristică sau o remediere a erorilor nu a rupt din greșeală codul care funcționa anterior.
Unele metodologii de dezvoltare recente, cum ar fi Extreme Programming, subliniază faptul că testele sunt disponibile înainte de codificare. Metodologiile de dezvoltare subliniază faptul că testarea regresiei să fie efectuată de mai multe ori în fiecare zi pentru a asigura corectitudinea software-ului pe măsură ce se dezvoltă. Dacă echipa de software trebuie să adere la această metodologie pentru orice software semnificativ, devine obligatoriu să fie utilizată testarea automată a software-ului.
Software-ul de testare a automatizării trebuie să fie alimentat cu intrările și ieșirile dorite. O modalitate de a face acest lucru este să stocați condițiile de testare manuale în software. O altă modalitate este de a scrie cod pentru a genera diverse condiții, în limitele acceptabile ale software-ului de testat. Astfel, baza testării automate a software-ului este cu siguranță efortul uman. Software-ul de testare automată nu poate depăși acest lucru singur.
Testarea automată a software-ului are un cost semnificativ în ceea ce privește software-ul care trebuie achiziționat, precum și în utilizarea acestuia. Deci, dacă să automatizezi și ce parte a testării să automatizezi, sunt decizii cheie. Testarea automată nu este adecvată pentru caracteristicile și mediile despre care se așteaptă să se schimbe semnificativ. În majoritatea aplicațiilor, este potrivită o combinație de testare manuală și automată.