Testning av datorprogramvara är en process genom vilken ett visst program, eller dess delar, testas för att säkerställa korrekt funktionalitet och hårdvarustöd. Denna process genomgår vanligtvis ett antal faser och upprepningar genom mjukvaruutvecklingen och kan innefatta både intern och extern testning. En stor del av denna testning är avsedd att hitta buggar i programvaran, vanligtvis genom att upptäcka och replikera dem, sedan dokumentera dessa fel och förse mjukvaruprogrammerarna med den dokumentationen. Programvarutestning kan också utföras för att kontrollera kompatibiliteten mellan ett program och olika delar av hårdvara eller annan mjukvara.
Medan den faktiska processen för testning av datorprogramvara kan variera mellan programvaruföretag, består den allmänna metoden för testning vanligtvis av flera faser. Företag kan använda olika nomenklatur när de hänvisar till dessa faser, även om de ofta hänvisar till dem som alfa- och betafaser. Alfa-testning innebär vanligtvis in-house testning av anställda, vanligtvis med mycket grova eller ofullbordade program. Alfafasen av testning av datorprogramvara kan utföras på ofullständig programvara, vanligtvis för att avgöra om vissa aspekter av programvaran fungerar korrekt.
Testning av datorprogramvara går sedan in i betafasen, som vanligtvis involverar mycket mer komplett programvara, även om vissa justeringar av programmen fortfarande kan behöva göras. Testningen i denna fas kallas ofta för ”stängd”, vilket innebär att den endast är tillgänglig för de som är inbjudna att testa programvaran. Betatestning kan också vara ”öppen”, vilket vanligtvis innebär att testningen är tillgänglig för ett större antal testare i allmänheten.
Ändringar av programvaran kan fortsätta att ske under sådana tester, men den övergripande koden för programmet har vanligtvis skrivits. Mycket av arbetet som görs under denna fas av testning av datorprogram syftar till att hitta buggar och fel i koden. Sådana fel dokumenteras av testare, som kan behöva spendera timmar eller till och med dagar med att utföra samma funktion för att återskapa felen på ett tillförlitligt sätt, och skickas till programmerarna som sedan avgör hur buggen eller felet ska elimineras.
Programvarutestning kan användas för att avgöra hur väl ett program fungerar med annan mjukvara eller hårdvara. Testare kan använda datorer och andra maskiner med många hårdvarulayouter för att säkerställa att programvaran kan fungera med olika delar av hårdvara. Programvarutestning kan säkerställa att ett program fungerar korrekt med ett visst operativsystem (OS). Testning kan också användas för att hitta problem som ett program kan ha när det körs på en maskin som också kör andra typer av programvara, till exempel populära antivirusprogram eller olika hårdvarudrivrutiner.