Mis on tarkvara automatiseeritud testimine?

Tarkvara testitakse, et kinnitada, et kõiki kehtivaid sisendeid tõlgendatakse ja täidetakse õigesti, samas kui valed sisendid visatakse välja. Testid kontrollivad ka seda, et tulemused genereeritakse tõhusalt ja et suure andmemahuga saab hakkama ilma tõrgeteta. Testimist saab läbi viia käsitsi või elektrooniliselt. Tarkvara automatiseeritud testimine hõlmab arendusel oleva koodi testimiseks spetsiaalse tarkvara kasutamist. Selline testimine on mõistliku rakendamise korral kasulik tarkvara arendusprotsessile.

Manuaalsed testid sõltuvad testimist teostavate inimeste täpsusest. Tarkvara käsitsi testimine on aeganõudev ja vajab enamiku rakenduste puhul märkimisväärset testijate ja arendajate suhet. See tõstab arenduskulusid. Lisaks on käsitsi testimisel piirang, et suuri andmemahte või suurt hulka samaaegseid kasutajaid või sisendeid ei saa lihtsalt testida.

Tarkvara automaattestimine kontrollib programmiliselt testi täitmist ja väljundi hindamist. Testimistarkvara annab hinnatavale tarkvarale sisendeid, mis vastavad erinevatele tingimustele. Iga tingimuste komplekti puhul võrdleb testimistarkvara tegelikke tulemusi soovitud tulemustega ja säilitab sihttarkvara koondkäitumise statistikat. Pärast “käitamist” annab testimistarkvara tavaliselt kokkuvõtlikud tulemused, et inimesed saaksid kiiresti otsustada, mida parandada.

Tarkvara automatiseeritud testimise korral mehhaniseeritakse testimisega seotud tüütud ülesanded, nagu sisselogimine või andmete (nt postiaadressid) sisestamine. Igas sõidus saab katsetada tohutuid tingimuste kombinatsioone. Kuna automatiseeritud testimine hõlmab arvutite ja tarkvara kasutamist, võimaldab see simuleerida ka suuri sisendandmete koormusi või ülikiireid sisestusi. Mitme katsetingimuste iga jooksu saab läbida mõne tunniga. Seetõttu on automaattestimine väga kasulik regressioonitestimisel, mis tagab, et uus funktsioon või veaparandus ei rikkunud kogemata varem töötanud koodi.

Mõned hiljutised arendusmetoodikad, nagu Extreme Programming, rõhutavad, et testid on saadaval enne kodeerimist. Arendusmetoodikates rõhutatakse, et regressiooniteste tuleb teha mitu korda päevas, et tagada tarkvara õigsus selle arenemise ajal. Kui tarkvarameeskond peab mis tahes olulise tarkvara puhul seda metoodikat järgima, muutub tarkvara automatiseeritud testimise kasutamine kohustuslikuks.

Automatiseerimise testimise tarkvarale tuleb sisestada soovitud sisendid ja väljundid. Üks võimalus seda teha on käsitsi testimise tingimuste salvestamine tarkvarasse. Teine võimalus on kirjutada kood erinevate tingimuste loomiseks testitava tarkvara vastuvõetavates piirides. Seega on automatiseeritud tarkvara testimise aluseks kindlasti inimese pingutus. Automatiseeritud testimistarkvara ei saa üksi sellest kaugemale minna.

Tarkvara automaattestimisel on nii soetava tarkvara kui ka selle kasutamise osas märkimisväärne kulu. Seega on võtmeotsused, kas automatiseerida ja milline testimise osa automatiseerida. Automaattestimine ei sobi funktsioonide ja keskkondade jaoks, mis eeldatavasti oluliselt muutuvad. Enamiku rakenduste puhul sobib käsitsi ja automaatse testimise kombinatsioon.