Arvutitarkvara arendamine nõuab mitu tundi kodeerimist ja testimist. See testimine hõlmab tavaliselt tarkvararakenduse ja kliendi vahelist valideerimis- ja verifitseerimistasandit. Testimistöö viitab täielikule testimise komplektile, mida tarkvara jaoks on vaja. See täielik pingutus hõlmab tavaliselt üksuse testimist, süsteemi testimist, jõudluse testimist ja kasutajate aktsepteerimise testimist.
Testimine jaguneb positiivseteks või negatiivseteks. Testimistöö määrab kindlaks, millist tüüpi testimine testimisetapis toimub. See peaks hõlmama tarkvararakenduse kõigi piirkondade täielikku testimist. Positiivne testjuhtum põhineb testiandmete korrektsel sisestamisel süsteemi. Negatiivsete testjuhtumite korral peab testija sisestama halbu andmeid. Positiivsete ja negatiivsete testide segu on tavaliselt soovitatav enamiku tarkvararakenduste jaoks.
Ühiktestimine on testimine, mis toimub tarkvarakoodi arendamise käigus. Selle testi teostavad rakenduse arendajad. Ühiktestimine on programmis olevate tarkvaramoodulite eeltestimise etapp. See testimisvorm tagab, et süsteem töötab vigadeta, enne kui see saadetakse testimismeeskonnale ülevaatamiseks.
Paljud suuremahulised tarkvararakendused hõlmavad integratsiooniteste mitme välise süsteemiga. See integratsioonitest on test, mille eesmärk on kinnitada väliste rakenduste integreerimist. Integratsiooni testimine viiakse tavaliselt läbi enne funktsionaalsuse testimist, sest enne funktsionaalsuse kontrollimist on vaja edukat integreerimist.
Funktsionaalsuse testimine on testimine, mis kinnitab süsteemi toimimist nii, nagu see oli ette nähtud. Seda tüüpi testimine eeldab konkreetsete testiandmete loomist, mida testimise ajal kasutatakse. Funktsionaalsuse testimine on rakenduse tegeliku funktsionaalsuse nõuete kontrollimine. Selle testimisetapi ebaõnnestumine tähendab tavaliselt, et kasutajad ei aktsepteeri süsteemi.
Jõudluse testimine on kriitilise tähtsusega tarkvararakenduste jaoks, mis on loodud toetama tuhandeid kasutajaid. See testimise vorm nõuab suurt töötlemismahtu, mis on loodud süsteemi koormamiseks kuni täieliku rikkeni. Testimine peaks hõlmama algelist jõudluskontrolli. See tagab, et süsteem toetab mitme kasutaja töötlemist ilma krahhita.
Kasutaja aktsepteerimise testimine on süsteemi valideerimise testimise teine vorm. See testimine hõlmab rakenduse kasutajaid koos konkreetsete testidega süsteemi funktsionaalsuse kinnitamiseks. Kasutajate aktsepteerimise testimine on oluline samm klientide rahulolu tagamiseks. See testimine toimub tavaliselt arendustsükli lõpus, enne rakenduse tootmisse juurutamist.