Ohjelmiston laadunvarmistukseen kuuluu tietokoneohjelmistojen suunnittelun ja toteutuksen testaaminen ja sen varmistaminen, että ne täyttävät vähimmäislaatustandardit. Laadunvarmistusprosessin ytimessä on testaus, joka on menetelmä, jolla kehityssyklin jokainen vaihe analysoidaan vikojen, kuten toimintahäiriöiden tai turvallisuusongelmien, löytämiseksi. Yleisimmin tunnettu osa ohjelmiston laadunvarmistusprosessia on ohjelmistojen ja koodien testaus; se kattaa kuitenkin myös muut suunnittelusyklin näkökohdat. Muita ohjelmistotekniikan näkökohtia, jotka kuuluvat laatuanalyysiin, ovat suunnittelu- ja toteutusvaiheet.
Ohjelmiston laadunvarmistuksen yleinen käsite edellyttää, että se aloitetaan ohjelmiston suunnitteluvaiheessa. Huonosti suunniteltu ohjelmisto voi olla vaikeaa tai mahdotonta kirjoittaa tavalla, joka täyttää sen suunnitelleen organisaation odotukset. Suunnitteluvaiheen laadunhallintaan kuuluu tutkia hankkeen spesifikaatioiden tai tavoitteiden seurauksia sekä organisaation suunnitelmia tavoitteiden saavuttamiseksi. Laatuanalyysin etuna suunnitteluvaiheessa on se, että se löytää ja poistaa virheet aikaisin eikä myöhemmin kehitysvaiheessa, kun suunnitteluongelmien korjaaminen on paljon kalliimpaa.
Ohjelmistotestausinsinööri, joka tunnetaan myös ohjelmiston laatuanalyytikkona, on ensisijaisesti vastuussa testausprosessin suorittamisesta. Tämä henkilö suunnittelee ja toteuttaa testisuunnitelmat, jotka auttavat organisaatiota parantamaan ohjelmistonsa laatua. Ihannetapauksessa ohjelmoijan ei pitäisi koskaan testata omaa tuotettaan, mikä tarkoittaa, että projektissa ohjelmoija ja testiinsinööri ovat kaksi eri ihmistä.
Testaussuunnitelmat ovat kriittinen osa laadunvarmistusjärjestelmää, erityisesti ohjelmistotestausvaihetta. Testisuunnitelmien tarkoituksena on määrittää olosuhteet, jotka osoittavat ohjelmiston onnistumisen tai epäonnistumisen. Tyypillinen testisuunnitelma sisältää kattavan luettelon ohjelmista ja osaohjelmista tai menettelyistä, jotka on testattava, sekä testaukseen liittyvistä tekniikoista. Toinen testisuunnitelman kriittinen tehtävä on määrittää, mitkä viat eivät ole hyväksyttäviä. Testisuunnitelmat suunnitellaan yleensä ennen projektin varsinaisen ohjelmistokoodin kehittämistä.
Kun testiinsinöörit kirjoittavat ohjelmia testisuunnitelmien toteuttamiseksi, niitä kutsutaan testiskripteiksi. Testikomentosarjat ovat olennainen osa ohjelmiston laadunvarmistusprosessia. Niiden tarkoitus on automatisoida ohjelman nykyisen koodin testaus vikojen löytämiseksi. Lisäksi testausinsinöörit käyttävät tyypillisesti kaupallisesti suunniteltuja testaustyökaluja mahdollisten ongelmien etsimiseen. Testisuunnitelmat toteutetaan ohjelmistokehityksen koodausvaiheessa.
Ohjelmiston laadunvarmistusprosessin varsinaiseen testausvaiheeseen liittyy useita tärkeitä vaiheita. Näitä ovat yksikkötestaus, joka arvioi ohjelmistokoodin eri osien eheyden, sekä vikainjektiot, jotka on suunniteltu tutkimaan, miten ohjelmat reagoivat virheellisiin tietoihin. Muita vaiheita ovat kuormitustestaus tai rasitustestaus, joka näkee kuinka ohjelma toimii kovassa käytössä, ja tunkeutumis- tai turvatestaus, jolla testataan ohjelman vastustuskykyä luvattomalle käytölle. Ohjelmistoprojektille tehdään myös tyypillisesti käytettävyystestaus sen varmistamiseksi, että tuloksena olevaa ohjelmaa on helppo käyttää muille.
Ohjelmistokooditestaukseen osallistuvat asiantuntijat jaetaan yleensä kahteen ryhmään, joista yksi on mustan laatikon testaajia ja toinen valkoinen laatikko tai lasilaatikko. Mustan laatikon testaus on pinnallisempi prosessi, joka alkaa ohjelmiston koodausvaiheessa eikä tutki mitään taustalla olevaa tietokonekoodia. Se tutkii ohjelmiston käytettävyyttä, kosmeettista johdonmukaisuutta sekä virheiden ja toimintahäiriöiden esiintymistä.
Valkoisen laatikon testaus on prosessi, joka alkaa ohjelmiston laadunvarmistusprosessin alussa, suunnitteluvaiheessa. Se sisältää mahdollisten ongelmien ennustamisen ennen koodin todellista kirjoittamista sekä testisuunnitelmien ja kehittyneiden testiskriptien kirjoittamisen. Toisin kuin mustan laatikon testaus, valkoisen laatikon testaus sisältää myös taustalla olevan tietokoneen koodin tutkimuksen.
Laadunvarmistus koskee myös ohjelmiston käyttöönottovaihetta, jolloin ohjelmisto on lähellä valmistumistaan ja asennetaan tietokonejärjestelmiin arviointia varten. Tätä vaihetta kutsutaan usein alfa -testaukseksi, ja se tapahtuu, kun kehittäjähenkilöstö asentaa ja testaa lähes lopullisen tuotteen. Kun ohjelmisto esitetään potentiaalisille asiakkaille yrityksen ulkopuolella, sitä kutsutaan betatestaukseksi. Jos vikoja ilmenee ohjelmiston julkaisun jälkeen ja korjaustiedosto on kehitettävä, käytetään regressiotestausta sen varmistamiseksi, että päivitykset eivät luo uusia virheitä.