”System under test” (SUT) är en bred term som betyder att programmeraren, eller någon annan, testar systemet i fråga för att säkerställa att det fungerar. Detta används normalt för felkorrigering, eftersom programmeraren ska kunna fixa eventuella problem som uppstår under systemet-under-testfasen. SUT används vanligtvis för ett helt program, men det kan också användas för att endast testa vissa delar av ett program. Detta görs normalt efter integrationstestning, vilket säkerställer att programmet kan integreras med och installeras på en dator.
Det finns sällan ett system, kommersiellt eller gratis, som inte blir ett system som testas någon gång. Det betyder att programmeraren eller någon annan som är betrodd att identifiera fel använder den aktuella versionen av programmet. Programmet är inte färdigt vid denna tidpunkt, så det kan fortfarande göras många ändringar innan systemet är redo för driftsättning. Programmet kan också skalas tillbaka för att göra det lättare för personen att gå igenom systemet, även om detta inte alltid är sant.
Det främsta skälet till att testa ett system är att kontrollera efter fel. Detta görs normalt genom att gå igenom varenda funktion, kommando, verktyg och allt annat som programmet erbjuder. Att använda verktygen i kombination med varandra kan också ge oväntade fel som bör åtgärdas. De flesta program har minst ett fel, varför SUT ofta är ett viktigt steg i systemutvecklingsprocessen.
Att testa systemet involverar normalt hela programmet, särskilt de första gångerna, så testaren kan gå igenom alla funktioner. Om det bara är en funktion som behöver testas, kan testet skalas tillbaka så att endast den funktionen är användbar. Detta gör det enklare och snabbare för testaren att kontrollera funktionen för att se om den förbättrade programmeringen har löst problemet.
Integrationstestning föregår traditionellt system-under-test-fasen. Detta beror på att integrationstestning används för att se om programmet kan installeras och korrekt integreras med datorn. Om det inte går att installera, kommer programmet vanligtvis inte att köras, vilket betyder att det inte kan användas. Samtidigt kan programmerare ändra denna normala ordning, eller helt utelämna integrationstestet, även om det kan vara en dålig idé.