Nashorn-testipenkki yksikkö- ja regressiotestaukseen
Salminen, Johannes (2018)
Tässä tietueessa ei ole kokotekstiä saatavilla Treposta, ainoastaan metadata.
Salminen, Johannes
2018
Tietojenkäsittelytieteiden tutkinto-ohjelma - Degree Programme in Computer Sciences
Luonnontieteiden tiedekunta - Faculty of Natural Sciences
Hyväksymispäivämäärä
2018-12-10
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:uta-201901031046
https://urn.fi/URN:NBN:fi:uta-201901031046
Tiivistelmä
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.
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.