Așa cum un produs fizic este testat pentru a verifica dacă îndeplinește comportamentul și specificațiile dorite, la fel este testat și software-ul. Testarea software-ului poate fi efectuată manual de către oameni sau prin utilizarea unor instrumente. Un instrument de testare automatizată este o bucată de software utilizată pentru a testa software-ul țintă, adică software-ul luat în considerare. Un astfel de instrument execută diverse teste pe software-ul țintă și determină dacă testele sunt trecute cu succes.
Software-ul trebuie testat pentru a se asigura că sunt generate rezultate corecte, că intrările valide sunt acceptate și procesate corect și că intrările nevalide sunt respinse. Testarea este necesară pentru a determina dacă rezultatele sunt generate rapid, software-ul funcționează bine chiar dacă un număr mare de persoane îl accesează simultan și așa mai departe. Testele manuale sunt adesea folosite, dar depind de minuțiozitatea persoanelor care efectuează testarea. Testarea manuală a software-ului necesită timp și necesită un număr semnificativ de oameni pentru majoritatea aplicațiilor non-triviale, adăugând astfel costul. În plus, testarea pentru mii de utilizatori simultani sau volume mari de date nu pot fi efectuate cu ușurință într-o manieră manuală.
Automatizarea testelor este utilizarea instrumentelor pentru testarea software-ului. Un instrument de testare automatizat este în sine un software care ar putea fi dezvoltat, achiziționat sau achiziționat. Instrumentul începe de obicei să execute software-ul țintă și transmite diverse intrări software-ului țintă pentru a testa diferite condiții. Evaluează rezultatele corespunzătoare ale software-ului țintă și ține evidența rezultatului de promovare/eșec al fiecărui test. La sfârșitul unei serii de teste, instrumentul oferă de obicei un rezumat al rezultatelor, astfel încât se poate determina rapid numărul și gravitatea defectelor.
Un instrument de testare automatizat poate funcționa în două moduri. În primul rând, poate fi condus de cod, adică instrumentul poate fi strâns legat de codul scris, astfel încât să verifice dacă rezultatele pentru diferite intrări sunt corecte. În al doilea rând, poate fi bazată pe o interfață cu utilizatorul în care activitățile utilizatorilor, cum ar fi mișcările mouse-ului, intrările de la tastatură, intrările vocale, etc. sunt imitate, iar ieșirile furnizate utilizatorilor sunt examinate pentru corectitudine. În acest ultim caz, activitățile reale ale unei persoane ar putea fi înregistrate și apoi redate de instrument, sau astfel de activități ar putea fi generate dintr-un script de comenzi introduse în instrument.
Instrumente de testare automată de uz general sunt disponibile pe piață. Cele mai multe sunt destul de scumpe, dar unele instrumente sunt disponibile gratuit. Dacă software-ul țintă este foarte specific sau unic, atunci un instrument de testare probabil trebuie să fie dezvoltat personalizat de acea echipă de software însăși. Ca și în cazul oricărui software, instrumentele în sine au limitări și funcționează corect numai atunci când li se oferă date de intrare bune. Dacă nu se alimentează un set relativ complet de teste, instrumentul nu va ajuta la determinarea calității software-ului țintă.
Un instrument de testare automatizat are multe avantaje. Odată ce o serie de teste este creată, testele pot fi executate mai rapid decât le poate executa o persoană. Testele pot fi efectuate peste noapte sau la ore ciudate, lăsând oamenii liberi să se concentreze pe ceea ce fac cel mai bine. Testele pot fi executate din nou și din nou pentru a determina dacă s-au strecurat erori în software-ul țintă, pe măsură ce acesta este modificat în timp.