Il software include sistemi operativi e programmi creati per essere eseguiti su uno o più di essi. Il test del software è un processo di esame e utilizzo del software durante e dopo lo sviluppo, ma prima del rilascio, per verificare che le funzionalità funzionino, rilevare bug, verificare correzioni di bug e assicurarsi che funzioni correttamente per gli utenti. Il test dinamico, chiamato anche analisi dinamica, è il processo di valutazione del software mentre viene utilizzato. È in contrasto con il test statico, che è l’analisi di un programma che viene eseguita senza eseguire il programma. Altri tipi di test includono test sui tempi di risposta e test retrospettivi.
I test statici e i test dinamici insieme sono due dei principali tipi di test del software che vengono intrapresi e si bilanciano a vicenda in determinati modi. Da un lato, il test statico trova errori di sintassi e altri problemi di codifica e copre l’intero programma. D’altra parte, il test dinamico di un programma ampio e complesso spesso potrebbe non coprire l’intero programma perché non tutti i possibili scenari possono essere immaginati o creati nel tempo dedicato al test.
Il test dinamico analizza il programma software in diversi ambienti operativi. Ciò include diverse marche di computer e altre differenze hardware, inclusi eventualmente più monitor, diversi sistemi operativi e diversi set di applicazioni software coesistenti sulla macchina. Inoltre, i tester possono disporre di moduli o plug-in esterni che utilizzano in relazione al software in fase di test che aumenta la differenziazione degli ambienti di test nel test dinamico.
È probabile che i test dinamici all’interno di una società di sviluppo software seguano le linee guida e i protocolli stabiliti dall’IEEE (Institute of Electrical and Electronics Engineers) per i test del software e il piano di test che l’azienda ha sviluppato in conformità con questi. I beta tester esterni a un’azienda vengono spesso utilizzati per ulteriori test e di solito questi tester sono interamente coinvolti nei test dinamici. Di solito si tenta di avere un gruppo diversificato di beta tester in termini di hardware, sistemi operativi e utilizzo del programma, a seconda dei casi. I beta tester, che potrebbero avere un accordo di non divulgazione con l’azienda, potrebbero avere un protocollo da seguire o essere invitati a utilizzare il software nel modo in cui lo utilizzerebbero normalmente, oppure potrebbero fare parte di ciascuno di essi. In genere esiste un sistema di segnalazione formale per i beta tester per indicare arresti anomali, sospetti bug, mancato funzionamento delle funzionalità come descritto o qualsiasi altro aspetto insolito, imprevisto o scomodo del lavoro con il software.