Software-ul include sisteme de operare și programe care sunt făcute să ruleze pe unul sau mai multe dintre ele. Testarea software-ului este un proces de examinare și utilizare a software-ului în timpul și după dezvoltare, dar înainte de lansare, pentru a verifica dacă funcțiile funcționează, pentru a detecta erori, pentru a verifica remedierea erorilor și pentru a vă asigura că funcționează bine pentru utilizatori. Testarea dinamică, numită și analiză dinamică, este procesul de evaluare a software-ului pe măsură ce este utilizat. Este în contrast cu testarea statică, care este analiza unui program care se face fără a rula programul. Alte tipuri de testare includ testarea timpului de răspuns și testarea retrospectivă.
Testarea statică și testarea dinamică împreună sunt două dintre principalele tipuri de testare software care sunt întreprinse și se echilibrează reciproc în anumite moduri. Pe de o parte, testarea statică găsește erori de sintaxă și alte probleme de codare și acoperă întregul program. Pe de altă parte, testarea dinamică a unui program mare și complex de multe ori poate să nu acopere întregul program, deoarece nu orice scenariu posibil poate fi imaginat sau creat în timpul alocat testării.
Testarea dinamică analizează programul software în diferite medii de operare. Aceasta include diferite mărci de computere și alte diferențe hardware, inclusiv mai multe monitoare, diferite sisteme de operare și diferite seturi de aplicații software care coexistă pe mașină. În plus, testerii pot avea module externe sau plug-in-uri pe care le folosesc în legătură cu software-ul aflat în testare, ceea ce mărește diferențierea mediilor de testare în testarea dinamică.
Testarea dinamică în cadrul unei companii de dezvoltare de software este probabil să urmeze liniile directoare și protocoalele stabilite de IEEE (Institute of Electrical and Electronics Engineers) pentru testarea software-ului și planul de testare pe care compania l-a dezvoltat în conformitate cu acestea. Testerii beta externi unei companii sunt adesea folosiți pentru teste suplimentare, iar acești testeri sunt de obicei implicați în totalitate cu testarea dinamică. De obicei, se încearcă să existe un grup divers de testere beta în ceea ce privește hardware-ul, sistemele de operare și utilizarea programelor, după caz. Testerii beta, care pot avea un acord de confidențialitate cu compania, pot avea un protocol de urmat sau li se poate cere să utilizeze software-ul în modul în care l-ar folosi în mod normal, sau pot face unele dintre ele. În general, există un sistem formal de raportare pentru testerii beta pentru a indica blocări, erori suspectate, nefuncționarea caracteristicilor conform descrierii sau orice alte aspecte neobișnuite, neașteptate sau incomode ale lucrului cu software-ul.