Programvara inkluderar operativsystem och program som är gjorda för att köras på ett eller flera av dem. Mjukvarutestning är en process för att undersöka och använda programvara under och efter utveckling, men före release, för att verifiera att funktioner fungerar, för att upptäcka buggar, för att kontrollera buggfixar och för att se till att det fungerar bra för användarna. Dynamisk testning, även kallad dynamisk analys, är processen att utvärdera programvara när den används. Det står i kontrast till statisk testning, som är analys av ett program som görs utan att programmet körs. Andra typer av testning inkluderar svarstidstestning och retrospektiv testning.
Statisk testning och dynamisk testning tillsammans är två av huvudtyperna av mjukvarutestning som genomförs och de balanserar varandra på vissa sätt. Å ena sidan hittar statisk testning syntaxfel och andra kodningsproblem och täcker hela programmet. Å andra sidan kan dynamisk testning av ett stort och komplext program ofta inte täcka hela programmet eftersom inte alla möjliga scenarier kan föreställas eller skapas under den tid som avsatts för testning.
Dynamisk testning analyserar programvaran i olika driftsmiljöer. Detta inkluderar olika märken av datorer och andra skillnader i hårdvara, möjligen inklusive flera bildskärmar, olika operativsystem och olika uppsättningar mjukvaruapplikationer som samexisterar på maskinen. Dessutom kan testare ha externa moduler eller plug-ins som de använder i samband med att mjukvaran testas som ökar differentieringen av testmiljöerna i den dynamiska testningen.
Dynamisk testning inom ett mjukvaruutvecklingsföretag följer sannolikt de riktlinjer och protokoll som IEEE (Institute of Electrical and Electronics Engineers) fastställt för mjukvarutestning och den testplan som företaget tagit fram i enlighet med dessa. Betatestare utanför ett företag används ofta för ytterligare tester, och dessa testare är vanligtvis helt involverade i dynamiska tester. Försök görs vanligtvis för att ha en mångsidig grupp betatestare när det gäller hårdvara, operativsystem och programanvändning, allt efter vad som är tillämpligt. Betatestare, som kan ha ett sekretessavtal med företaget, kan ha ett protokoll att följa eller bli ombedda att använda programvaran på det sätt som de normalt skulle använda den, eller så kan de göra en del av varje. Det finns i allmänhet ett formellt rapporteringssystem för betatestare för att indikera krascher, misstänkta buggar, funktioner som inte fungerar enligt beskrivningen eller andra ovanliga, oväntade eller obekväma aspekter av att arbeta med programvaran.