Tietokoneohjelmistojen kehittäminen vaatii useita tunteja koodausta ja testausta. Tämä testaus sisältää tyypillisesti useita validointi- ja todentamistasoja ohjelmistosovelluksen ja asiakkaan välillä. Testiponnistus tarkoittaa ohjelmiston edellyttämää täydellistä testausjoukkoa. Tämä täysi ponnistus sisältää tyypillisesti yksikkötestauksen, järjestelmätestauksen, suorituskykytestauksen ja käyttäjien hyväksymistestauksen.
Testi on jaettu joko positiivisiin tai negatiivisiin testeihin. Testiponnistus määrittää, minkä tyyppinen testaus suoritetaan testausvaiheen aikana. Sen pitäisi ottaa huomioon ohjelmistosovelluksen kaikkien alueiden täydellinen testaus. Positiivinen testitapaus perustuu testitietojen syöttämiseen oikein järjestelmään. Negatiiviset testitapaukset edellyttävät, että testaaja syöttää virheellisiä tietoja. Useimpiin ohjelmistosovelluksiin suositellaan tyypillisesti positiivisten ja negatiivisten testien yhdistelmää.
Yksikkötestaus on testaus, joka tapahtuu ohjelmistokoodin kehittämisen aikana. Tämän testin suorittavat sovelluksen kehittäjät. Yksikkötestaus on ohjelman ohjelmistomoduulien alustava testausvaihe. Tämä testausmuoto varmistaa, että järjestelmä toimii virheettömästi ennen sen lähettämistä testaustiimille tarkistettavaksi.
Monet laajamittaiset ohjelmistosovellukset sisältävät integrointitestejä useiden ulkoisten järjestelmien kanssa. Tämä integraatiotestaus on testi, joka on suunniteltu vahvistamaan ulkoisten sovellusten integrointi. Integraatiotestaus suoritetaan tyypillisesti ennen toiminnallisuustestausta, koska onnistunut integrointi vaaditaan ennen kuin toiminnallisuus voidaan tarkistaa.
Toiminnallisuustestaus on testaus, joka vahvistaa järjestelmän toiminnot suunnitellulla tavalla. Tämäntyyppinen testaus edellyttää erityisten testitietojen luomista, joita käytetään testauksen aikana. Toimintotestaus on sovelluksen todellisten toimintojen vaatimusten tarkistaminen. Tämän testausvaiheen epäonnistuminen tarkoittaa tyypillisesti sitä, että käyttäjät eivät hyväksy järjestelmää.
Suorituskykytestaus on kriittinen ohjelmistosovelluksille, jotka on suunniteltu tukemaan tuhansia käyttäjiä. Tämä testausmuoto vaatii suuria käsittelymääriä, joiden tarkoituksena on rasittaa järjestelmää täydelliseen vikaan asti. Testaukseen tulisi sisältyä alkeellinen suorituskykytestaus. Tämä varmistaa, että järjestelmä tukee useiden käyttäjien käsittelyä kaatumatta.
Käyttäjien hyväksymistestaus on toinen järjestelmän validointitestin muoto. Tämä testaus sisältää sovelluksen käyttäjät ja erityiset testit järjestelmän toimivuuden validoimiseksi. Käyttäjien hyväksymistestaus on kriittinen askel asiakastyytyväisyyden varmistamiseksi. Tämä testaus tapahtuu tyypillisesti kehityssyklin lopussa, ennen kuin sovellus otetaan käyttöön tuotantoon.