arvutiteaduse instituudi lõputööderegister


Kasutajaliidesepõhiste automatiseeritud regressioontestide komplekti loomine
Nimi Arli Türk
Kokkuvõte Antud töö esimeses osas tutvustati regressioontestimist üldisemalt, selgitades selle vajadust tulenevalt pidevalt muutuvast lähtekoodist ja sellega kaasnevast vigade ohust. Analüüsiti, kuidas testjuhtumite loomine aitab kaasa regressioontestimisele, sest nende loomisel teostatakse planeerimise osa funktsionaalsuste testimiseks ning tulevikus saab loodud teste kergesti taaskasutada. Toodi välja kaudseid spetsifikatsioone nagu konkureerivad tooted, kasutajate kommentaarid, kasutajaliidese standardid ja testijate enda kogemus, mida võiks testjuhtumite kirjutamisel kasutada, ning selgitati, kuidas kirjutatava dokumendi detailsus peaks sõltuma sellest, kas loodav testjuhtum on manuaalseks testimiseks mõeldud või kasutatav sisendina automatiseerimisele. Eraldi analüüsiti väljakutseid, mida regressioontestimine endaga kaasa toob ning erinevaid tehnikaid regressioontestimise läbiviimiseks. Üks suurimaid probleeme oli risk, et tähtis osa funktsionaalsusest jääb testimata tulenevalt ajapuudusest. Selle riski vähendamiseks tutvustati lähenemist, kus testjuhtumitele määratakse prioriteedid. Tulemusena on testijal alati teada, millised funktsionaalsused vajavad enim tähelepanu, ning nende testimisele pannakse suuremat rõhku kui nende funktsionaalsuste testimisele, mis omavad madalamat prioriteeti. Teises osas tutvustati testide automatiseerimist, mis aitab tegeleda kasvava funktsionaalsuse, rutiinseks kujuneva töö ja võimalike inimvigadega testimisel. Selgitati, et kuigi automatiseerimine on võimas tööriist, siis valesti kasutamisel võib see projektile rohkem kahju kui kasu tuua, raisates ressursse, mida saaks mujal paremini kasutada. Vältida tuleks selliseid eemärke nagu kogu rakenduse testimise automatiseerimine, kuna enamikel juhtudel eksisteerib funktsionaalsuseid, kus manuaalne testimine annab paremaid tulemusi kui automatiseeritud testimine. Tähtis on meeles pidada, et automatiseerimine ei õpeta testijaid paremini testima, seega tuleks enne automatiseerimist üle vaadata projekti käesolev testimisprotsess ning olemasolevate probleemide korral need enne ära lahendada. Valides testjuhtumeid, mida automatiseerida, tuleks mõelda, kas antud funktsionaalsuse testimine vajab inimlikku lähenemist ja võimet erinevaid otsuseid teha tulenevalt saadavatest tulemustest. Kui jah, siis tuleks eelistada manuaalset testimist, sest automaattestid teevad ainult seda, mis neile ette on öeldud. Samuti tuleks mõelda, kas saadava tulemuse õigsust on arvutiprogrammil lihtne hinnata. Näiteks piltide puhul on tulemust arvutil väga keeruline hinnata ning selliseid teste 36 peaks läbi viima inimene. Testjuhtumid, mis omavad suuri andmemahte ja mille läbiviimine on väga rutiine töö, sobivad hästi automatiseerimiseks, eeldusel, et funktsionaalsus on stabiilne ning seda ei muudeta lähitulevikus. Testjuhtumite koostamine ning hooldamine peaks jääma testija vastutuseks ning automaattestide loomine ja täiendamine võiks olla arendaja töö, olenevalt sellest, milliste oskustega inimesed projektis on. Kolmandas osas tutvustati Selenium Webdriver tööriista, mida kasutati antud töö raames loodud testide automatiseerimiseks. Antud tööriist valiti, kuna ta võimaldab automatiseerida funktsionaalseid teste, kirjutada teste programmeerimiskeeles Java, genereerida tulemustest raporteid ning on vabavaraline tarkvara. Lühidalt tutvustati andmetepõhist testimist ning tähtsamatest Webdriveri funktsionaalsustest uuriti automaattestide ootamise loogika loomise, veebielementide asukoha määramise ja tulemuste kontrollimise võimalusi. Lisaks kirjeldati eraldi Selenium IDE tööriista, mida saab kasutada algsete testide automatiseerimiseks või abivahendina keerulisemate testide loomisel. Loodi reaalne juhis Webdriver testide käitamiseks Eclipse arenduskeskkonnas ning kirjeldati, millised sammud tuleb läbida, kui eksisteerivad testid, mille käitamiseks kasutatakse Apache Ant tarkvara (töö käigus ei kirjeldatud, kuidas antud tarkvara seadistada testidega suhtlemiseks). Lühidalt tutvustati ka TestNG ning ReportNG tarkvara, mida saab kasutada testide omavaheliste sõltuvuste määramiseks ning loetavamate raportite koostamiseks. Töö tulemusena valmis algne kasutajaliidesepõhiste automaattestide komplekt, mida saab EAK projektis kasutada, abistamaks regressioontestimist ning kiirendamaks arendusprotsessi, andes tekkivate vigade korral sellest võimalikult vara teada. Automaattestide komplekt sisaldab teste sisselogimise, müügiarvete sisestamise ja ostuarvete sisestamise funktsionaalsuste kohta. Samuti valmisid testjuhtumid ja nimekiri rakenduse funktsionaalsustest, mida saab kasutada regressioontestimise plaanina.
Lõputöö keel eesti
Lõputöö tüüp Bakalaureus - Infotehnoloogia
Juhendaja(d) Herlle Hein, Artur Assor
Kaitsmise aasta 2013
PDF