Zagotavljanje kakovosti programske opreme vključuje testiranje zasnove in implementacije računalniške programske opreme ter zagotavljanje, da izpolnjuje minimalni standard kakovosti. Jedro procesa zagotavljanja kakovosti je testiranje, ki je metoda, s katero se analizira vsak korak razvojnega cikla, da se odkrijejo napake, kot so okvare ali varnostne težave. Najpogosteje znan del procesa zagotavljanja kakovosti programske opreme je testiranje programske opreme in kode; vendar zajema tudi druge vidike inženirskega cikla. Drugi vidiki programskega inženiringa, ki so predmet analize kakovosti, vključujejo faze načrtovanja in izvedbe.
Splošni koncept zagotavljanja kakovosti programske opreme zahteva, da se začne v fazi načrtovanja programske opreme. Slabo načrtovano programsko opremo je težko ali nemogoče napisati na način, ki izpolnjuje pričakovanja organizacije, ki si jo je zamislila. Upravljanje kakovosti v fazi načrtovanja vključuje preučevanje posledic projektnih specifikacij ali ciljev ter načrtov organizacije za doseganje njihovih ciljev. Prednost analize kakovosti v fazi načrtovanja je, da odkrije in odpravi napake zgodaj, ne pa pozneje v razvojnem ciklu, ko je odpravljanje težav pri načrtovanju veliko dražje.
Inženir za testiranje programske opreme, znan tudi kot analitik kakovosti programske opreme, je primarna oseba, odgovorna za izvedbo postopka testiranja. Ta oseba oblikuje in izvaja načrte testiranja, ki bodo organizaciji pomagali izboljšati kakovost njihove programske opreme. V idealnem primeru programer nikoli ne bi smel testirati lastnega izdelka, kar pomeni, da sta v projektu programer in testni inženir dve različni osebi.
Testni načrti so kritični del sistema zagotavljanja kakovosti, zlasti faze testiranja programske opreme. Namen testnih načrtov je določiti pogoje, ki označujejo uspeh ali neuspeh programske opreme. Tipičen načrt testiranja bo vključeval izčrpen seznam programov in podprogramov ali postopkov, ki jih je treba preizkusiti, ter tehnik, vključenih v testiranje. Druga kritična funkcija načrta testiranja je ugotavljanje, katere napake so nesprejemljive. Testni načrti so običajno zasnovani, preden se razvije dejanska programska koda projekta.
Ko testni inženirji pišejo programe za izvajanje testnih načrtov, se ti imenujejo testni skripti. Testni skripti so bistveni del procesa zagotavljanja kakovosti programske opreme. Njihov namen je avtomatizirati testiranje obstoječe kode programa, da bi našli napake. Poleg tega testni inženirji običajno uporabljajo komercialno zasnovana orodja za testiranje, da iščejo morebitne težave. Testni načrti se izvajajo v fazi kodiranja razvoja programske opreme.
V dejanski fazi testiranja procesa zagotavljanja kakovosti programske opreme je vključenih več pomembnih korakov. Ti vključujejo testiranje enot, ki ocenjuje celovitost različnih delov programske kode, kot tudi injekcije napak, ki so zasnovane za raziskovanje, kako se programi odzivajo na napačne podatke. Dodatni koraki vključujejo testiranje obremenitve ali testiranje izjemnih situacij, ki vidi, kako program deluje pri težki uporabi, in testiranje vdorov ali varnostno testiranje za testiranje odpornosti programa na nepooblaščen dostop. Projekt programske opreme je običajno podvržen tudi testiranju uporabnosti, da se preveri, ali je nastali program enostaven za uporabo.
Strokovnjaki, ki se ukvarjajo s testiranjem programske kode, so na splošno razdeljeni v dve skupini, ena se imenuje preizkuševalci črne škatle in druga, znana kot testerji bele škatle ali steklene škatle. Testiranje črne skrinjice je bolj površen proces, ki se začne v fazi kodiranja programske opreme in ne preučuje nobene osnovne računalniške kode. Raziskuje uporabnost programske opreme, kozmetično doslednost ter pojav napak in okvar.
Testiranje bele škatle je proces, ki se začne na samem začetku procesa zagotavljanja kakovosti programske opreme, v fazi načrtovanja. Vključuje napovedovanje možnih težav, preden je koda dejansko napisana, pa tudi pisanje testnih načrtov in naprednih testnih skriptov. Za razliko od testiranja črne škatle, testiranje bele škatle vključuje tudi preučevanje osnovne računalniške kode.
Zagotavljanje kakovosti velja tudi za fazo implementacije programske opreme, ko je programska oprema blizu zaključka in je nameščena v računalniške sisteme za ocenjevanje. Ta faza se pogosto imenuje alfa testiranje in se pojavi, ko razvijalec namesti in testira skoraj končni izdelek. Ko je programska oprema predstavljena potencialnim strankam zunaj podjetja, se imenuje beta testiranje. Če se po izdaji programske opreme pojavijo napake in je treba razviti popravek, se uporabi regresijsko testiranje, da se zagotovi, da posodobitve ne ustvarijo novih napak.