Client Software for Visualizing Test Automation Result
Vaara, Santeri (2018)
Vaara, Santeri
Metropolia Ammattikorkeakoulu
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2018091315128
https://urn.fi/URN:NBN:fi:amk-2018091315128
Tiivistelmä
Insinöörityössä kehitettiin asiakasohjelmisto, joka toimii osana uutta testien analysointityökalua. Asiakasohjelmisto sisältää tiedonsiirron palvelimelta datan hakemiseen ja graafisen käyttöliittymän datan visualisointiin. Projekti toteutettiin maanlaajuisesti toimivalle suomalaiselle televiestintäyritykselle.
Insinöörityön tilaajayrityksessä ohjelmistopaketit testataan päivittäin regressiotesteillä varmistamaan, että ohjelmisto toimii samalla tavalla kuin ennen muutoksia. Testit tehdään käyttäen Robot Frameworkia, ja ne suoritetaan Jenkins-palvelimella. Jenkins-palvelinta käytetään jatkuvaan integraatioon, mikä mahdollistaa testiautomaation. Testien suoritusten jälkeen Robot Framework -liitännäinen mahdollistaa tulosten näkyvyyden Jenkinsin verkkosivulla. Jenkins suorittaa tuhansia testejä päivittäin, ja testaajan työ on analysoida epäonnistuneet testit sekä varmistaa, että testiautomaatio toimii. Jenkins-verkkosivun lisäksi testien tulokset tallennetaan tiedontallennuspalvelimelle. Tallennuspalvelin sisältää yli vuoden verran dataa, jota ei käytetä mihinkään.
Insinöörityön tarkoituksena oli kehittää asiakasohjelmisto, joka havainnollistaa tiedontallennuspalvelimella olevat testitulokset. Asiakasohjelmisto on osana uutta työkalua, jossa on olemassa palvelinohjelmisto ja tiedonhallintaohjelmisto. Projektin ohjelmointikieleksi valittiin Java, ja graafisen käyttöliittymän kehittämiseksi valittiin JavaFX. JavaFX on Java-ohjelmistoalusta, jolla voidaan luoda työpöytäsovelluksia. JavaFX:llä voidaan koodata työpöytäsovellusten käyttöliittymiä deklaratiivisella tavalla, joka on samanlainen kuin hyperteks-timerkintäkieli. Tätä deklaratiivista tapaa käytettiin laajalti projektin käyttöliittymän kehittämisessä. JavaFX tarjoaa paljon valmiita luokkia tiedon visualisointiin. Näitä luokkia käyttäen pystyttiin visualisoimaan testitulosten tietoja erilaisilla kaavioilla ja näkymillä. Käyttöliittymäkomponentteja pystyttiin myös luomaan Scene Builder -nimisellä ohjelmalla. Tällä ohjelmalla pystyi graafisesti rakentamaan käyttöliittymänäkymiä raahaamalla ja pudottamalla komponentteja ohjelman komponenttivalikosta. Scene Builder -ohjelma kirjoitti automaattisesti siinä tehdyt muutokset deklaratiiviseen muotoon käytetyssä tiedostossa.
Opinnäytetyön tuloksena asiakasohjelmiston loppukäyttäjät voivat tarkastella yhteenvetoa ohjelmistopaketin testituloksista, tilastoista ja testien historiasta. Jokaiselle näille toiminnoille luotiin näkymä asiakasohjelmiston käyttöliittymässä. Lisäksi asiakasohjelmisto tukee muita käytettyjä työkaluja ja osaa hakea haluttuja tietoja palvelimelta.
Insinöörityön tilaajayrityksessä ohjelmistopaketit testataan päivittäin regressiotesteillä varmistamaan, että ohjelmisto toimii samalla tavalla kuin ennen muutoksia. Testit tehdään käyttäen Robot Frameworkia, ja ne suoritetaan Jenkins-palvelimella. Jenkins-palvelinta käytetään jatkuvaan integraatioon, mikä mahdollistaa testiautomaation. Testien suoritusten jälkeen Robot Framework -liitännäinen mahdollistaa tulosten näkyvyyden Jenkinsin verkkosivulla. Jenkins suorittaa tuhansia testejä päivittäin, ja testaajan työ on analysoida epäonnistuneet testit sekä varmistaa, että testiautomaatio toimii. Jenkins-verkkosivun lisäksi testien tulokset tallennetaan tiedontallennuspalvelimelle. Tallennuspalvelin sisältää yli vuoden verran dataa, jota ei käytetä mihinkään.
Insinöörityön tarkoituksena oli kehittää asiakasohjelmisto, joka havainnollistaa tiedontallennuspalvelimella olevat testitulokset. Asiakasohjelmisto on osana uutta työkalua, jossa on olemassa palvelinohjelmisto ja tiedonhallintaohjelmisto. Projektin ohjelmointikieleksi valittiin Java, ja graafisen käyttöliittymän kehittämiseksi valittiin JavaFX. JavaFX on Java-ohjelmistoalusta, jolla voidaan luoda työpöytäsovelluksia. JavaFX:llä voidaan koodata työpöytäsovellusten käyttöliittymiä deklaratiivisella tavalla, joka on samanlainen kuin hyperteks-timerkintäkieli. Tätä deklaratiivista tapaa käytettiin laajalti projektin käyttöliittymän kehittämisessä. JavaFX tarjoaa paljon valmiita luokkia tiedon visualisointiin. Näitä luokkia käyttäen pystyttiin visualisoimaan testitulosten tietoja erilaisilla kaavioilla ja näkymillä. Käyttöliittymäkomponentteja pystyttiin myös luomaan Scene Builder -nimisellä ohjelmalla. Tällä ohjelmalla pystyi graafisesti rakentamaan käyttöliittymänäkymiä raahaamalla ja pudottamalla komponentteja ohjelman komponenttivalikosta. Scene Builder -ohjelma kirjoitti automaattisesti siinä tehdyt muutokset deklaratiiviseen muotoon käytetyssä tiedostossa.
Opinnäytetyön tuloksena asiakasohjelmiston loppukäyttäjät voivat tarkastella yhteenvetoa ohjelmistopaketin testituloksista, tilastoista ja testien historiasta. Jokaiselle näille toiminnoille luotiin näkymä asiakasohjelmiston käyttöliittymässä. Lisäksi asiakasohjelmisto tukee muita käytettyjä työkaluja ja osaa hakea haluttuja tietoja palvelimelta.