Softver se testira kako bi se potvrdilo da su svi valjani ulazi ispravno interpretirani i izvršeni, dok se netočni ulazi izbacuju. Testovi također potvrđuju da se rezultati generiraju učinkovito i da se velikom količinom podataka može rukovati bez poteškoća. Ispitivanje se može provesti ručno ili elektronički. Automatizirano testiranje softvera uključuje korištenje specijaliziranog softvera za testiranje koda koji je u razvoju. Takvo testiranje koristi procesu razvoja softvera, kada se primjenjuje razumno.
Ručni testovi ovise o pedantnosti ljudi koji testiraju. Ručno testiranje softvera oduzima mnogo vremena i zahtijeva značajan omjer testera i programera za većinu aplikacija. To povećava troškove razvoja. Osim toga, ručno testiranje ima ograničenje da se velike količine podataka ili veliki broj istodobnih korisnika ili unosa ne mogu lako testirati.
Automatizirano testiranje softvera programski kontrolira izvođenje testa i evaluaciju rezultata. Softver za testiranje daje ulazne podatke, koji odgovaraju različitim uvjetima, za softver koji se ocjenjuje. Za svaki skup uvjeta, softver za testiranje uspoređuje stvarne rezultate sa željenim rezultatima i održava statistiku o ukupnom ponašanju ciljnog softvera. Nakon “provođenja”, softver za testiranje obično daje sažete rezultate tako da ljudi mogu brzo odrediti što treba popraviti.
U automatiziranom testiranju softvera, zamorni zadaci uključeni u testiranje, kao što je prijava ili unos podataka poput poštanskih adresa, su mehanizirani. Ogromne kombinacije uvjeta mogu se testirati u svakoj vožnji. Budući da automatizirano testiranje uključuje korištenje računala i softvera, ono također omogućuje simulaciju velikih opterećenja ulaznih podataka ili iznimno brzih unosa. Svako izvođenje niza uvjeta ispitivanja može se dovršiti za nekoliko sati. Stoga je automatizirano testiranje vrlo korisno za regresijsko testiranje, koje osigurava da nova značajka ili ispravak bugova nehotice ne razbiju prethodno radni kod.
Neke novije razvojne metodologije kao što je Extreme Programming naglašavaju da su testovi dostupni prije kodiranja. Metodologije razvoja naglašavaju da se regresijsko testiranje provodi više puta svaki dan kako bi se osigurala ispravnost softvera kako se razvija. Ako se softverski tim mora pridržavati ove metodologije za bilo koji značajan softver, postaje obvezno korištenje automatskog testiranja softvera.
Softver za testiranje automatizacije mora imati željene ulaze i izlaze. Jedan od načina da to učinite je pohranjivanje uvjeta ručnog testiranja u softver. Drugi način je pisanje koda za generiranje različitih uvjeta, unutar prihvatljivih granica softvera koji se testira. Dakle, temelj automatiziranog testiranja softvera svakako je ljudski trud. Softver za automatsko testiranje ne može sam ići dalje od toga.
Automatizirano testiranje softvera ima značajnu cijenu u smislu softvera koji treba nabaviti, kao i prilikom njegove uporabe. Dakle, hoće li se automatizirati i koji dio testiranja automatizirati, ključne su odluke. Automatsko testiranje nije prikladno za značajke i okruženja za koje se očekuje da će se značajno promijeniti. U većini aplikacija prikladna je kombinacija ručnog i automatiziranog testiranja.