Att utveckla datorprogram kräver många timmars kodning och testning. Denna testning inkluderar vanligtvis flera nivåer av validering och verifiering mellan programvaran och kunden. Testansträngning avser en komplett uppsättning tester som krävs för programvara. Denna fullständiga ansträngning inkluderar vanligtvis enhetstestning, systemtestning, prestandatestning och testning av användaracceptans.
Testningen är uppdelad i antingen positiva eller negativa tester. Testansträngningen definierar vilken typ av testning som kommer att ske under testfasen. Det bör stå för den fullständiga testningen av alla delar av programvaran. Ett positivt testfall baseras på att testdatan matas in korrekt i systemet. Negativa testfall kräver att testaren anger dålig data. En blandning av positiva och negativa tester rekommenderas vanligtvis för de flesta program.
Enhetstestning är den testning som sker under utvecklingen av mjukvarukoden. Denna testinsats utförs av utvecklarna av en applikation. Enhetstestning är den preliminära testfasen av programvarumoduler i ett program. Denna form av testning säkerställer att systemet fungerar utan fel innan det skickas till testteamet för granskning.
Många storskaliga programvaruapplikationer inkluderar integrationstester med flera externa system. Denna integrationstestning är en testinsats utformad för att validera integrationen av externa applikationer. Integrationstestning utförs vanligtvis före funktionstestning eftersom framgångsrik integration krävs innan funktionalitet kan verifieras.
Funktionstestning är den testning som validerar att systemet fungerar som det var tänkt. Denna typ av testning kräver att specifika testdata skapas, som används under testansträngningen. Funktionstestning är en verifiering av krav på faktisk funktionalitet i applikationen. Att inte klara denna testfas innebär vanligtvis att systemet inte kommer att accepteras av användarna.
Prestandatestning är avgörande för programvaruapplikationer som är designade för att stödja tusentals användare. Denna form av testning kräver stora volymer av bearbetning, utformad för att stressa systemet till en punkt av fullständigt misslyckande. En testinsats bör innehålla en del rudimentära prestationstestning. Detta kommer att säkerställa att systemet stöder flera användares bearbetning utan att krascha.
Användaracceptanstestning är en annan form av systemvalideringstestning. Denna testinsats inkluderar användarna av applikationen, med specifika tester för att validera systemets funktionalitet. Testning av användaracceptans är ett kritiskt steg för att säkerställa kundnöjdhet. Denna testning sker vanligtvis i slutet av en utvecklingscykel, innan applikationen distribueras i produktion.