Ohjelmisto testataan sen varmistamiseksi, että kaikki kelvolliset syötteet tulkitaan ja suoritetaan oikein ja väärät syötteet heitetään ulos. Testit myös varmistavat, että tulokset luodaan tehokkaasti ja että suuri määrä dataa voidaan käsitellä ilman häiriöitä. Testaus voidaan suorittaa manuaalisesti tai sähköisesti. Automaattiseen ohjelmistotestaukseen kuuluu erikoisohjelmiston käyttö kehitettävän koodin testaamiseen. Tällainen testaus hyödyttää ohjelmistokehitysprosessia, kun sitä käytetään harkiten.
Manuaaliset testit riippuvat testejä tekevien ihmisten huolellisuudesta. Manuaalinen ohjelmistotestaus on aikaa vievää ja vaatii useimmissa sovelluksissa merkittävän testaajien ja kehittäjien suhteen. Tämä nostaa kehityskustannuksia. Lisäksi manuaalinen testaus rajoittaa sitä, että suuria tietomääriä tai suuria määriä samanaikaisia käyttäjiä tai tuloja ei voida testata helposti.
Automaattinen ohjelmistotestaus ohjaa ohjelmallisesti testin suorittamista ja tulosten arviointia. Testausohjelmisto tarjoaa syötteitä, jotka vastaavat eri olosuhteita, arvioitavaan ohjelmistoon. Testausohjelmisto vertaa kunkin ehtojoukon todellisia tuloksia haluttuihin tuloksiin ja ylläpitää tilastoja kohdeohjelmiston kokonaiskäyttäytymisestä. “Ajon” jälkeen testausohjelmisto antaa tyypillisesti yhteenvedon tuloksista, jotta ihmiset voivat nopeasti päättää, mitä korjata.
Automaattisessa ohjelmistotestauksessa testaukseen liittyvät työläät tehtävät, kuten kirjautuminen tai tietojen, kuten postiosoitteiden, syöttäminen on koneistettua. Laajoja olosuhteiden yhdistelmiä voidaan testata jokaisessa ajossa. Koska automaattinen testaus sisältää tietokoneiden ja ohjelmistojen käytön, se mahdollistaa myös suurten syöttötietokuormien tai erittäin nopeiden syötteiden simuloinnin. Jokainen useiden testiolosuhteiden ajo voidaan suorittaa muutamassa tunnissa. Siksi automaattinen testaus on erittäin hyödyllinen regressiotestissä, mikä varmistaa, että uusi ominaisuus tai virheenkorjaus ei vahingossa rikkonut aiemmin toimivaa koodia.
Jotkut viimeaikaiset kehittämismenetelmät, kuten Extreme Programming, korostavat, että testit ovat saatavilla ennen koodausta. Kehitysmenetelmissä korostetaan, että regressiotestaus suoritetaan useita kertoja päivässä, jotta varmistetaan ohjelmiston oikeellisuus sen kehittyessä. Jos ohjelmistotiimin on noudatettava tätä menetelmää minkä tahansa merkittävän ohjelmiston osalta, automaattisen ohjelmistotestauksen käyttö on pakollista.
Automaation testausohjelmistolle on syötettävä halutut tulot ja lähdöt. Yksi tapa tehdä tämä on tallentaa manuaaliset testiolosuhteet ohjelmistoon. Toinen tapa on kirjoittaa koodi erilaisten olosuhteiden luomiseksi testattavan ohjelmiston hyväksyttävissä rajoissa. Automaattisen ohjelmistotestauksen perusta on siis ehdottomasti ihmisen työ. Automaattinen testausohjelmisto ei voi ylittää tätä yksin.
Automaattisella ohjelmistotestauksella on huomattavat kustannukset hankittavan ohjelmiston ja sen käytön kannalta. Joten, automatisoidaanko ja mikä osa testauksesta automatisoidaan, ovat keskeisiä päätöksiä. Automaattinen testaus ei sovellu ominaisuuksiin ja ympäristöihin, joiden odotetaan muuttuvan merkittävästi. Useimmissa sovelluksissa manuaalisen ja automaattisen testauksen yhdistelmä sopii.