Popis: |
Tämän tutkimuksen tarkoituksena on selvittää, miten Nashorn Javascript-moottorilla suoritettavia skriptejä voidaan yksikkö- ja regressiotestata kehittäjän lokaalissa kehitysympäristössä, kun skriptien hyödyntäviä palveluita tuottavat Java-luokat eivät ole skriptien saatavilla. Regressiotesteillä pyritään välttämään ketterästä kehityksestä aiheutuvan jatkuvan muutoksen seurauksena syntyvät virheet. Yksikkötesteillä taas tarkoitetaan pienimmän mahdollisen itsenäisesti toimivan kokonaisuuden testausta. Yksikköä voi olla mahdoton irrottaa kaikista riippuvuuksistaan, joten tutkimuksessa selvitettiin riippuvuuksien ohittamista yksikkötesteissä tynkien, väärennöksien ja mockien avulla. Tutkimusmetodina käytettiin design-tutkimusta, jonka artefaktina syntyi lokaalin testauksen mahdollistava testipenkki. Testipenkki koostui kahdesta osasta: Java-luokkien väärennöksistä ja valmiista testikehikosta. Javascriptille on olemassa lukuisia testikehikoita, jotka ovat kuitenkin yleensä tarkoitettu selainympäristöön. Tutkimuksessa vertailtiin useita eri kehikoita ja lopulta löydettiin Java-ympäristössä Javascriptin testaukseen soveltuva Spock. Spock tarjoaa testipenkille oman Groovymaisen testikielen ja testitulosten raportoinnin. Testipenkin lisäksi tutkimuksessa esiteltiin testivetoista ohjelmistokehitystä, jossa yksikkötestit kirjoitetaan ennen implementaatiota. Tällä pyritään mahdollistamaan testit läpäisevän toteutuksen refaktorointi, joka taas varmistaa lopulta laadukkaan lähdekoodin julkaisemisen. Lisäksi yksikkötesteistä muodostuu kattava kokonaisuus, jota voidaan hyödyntää samalla myös regressiotestaukseen. |