Automaattisen testausjärjestelmän kehitys
Välimäki, Tuomas (2012)
Välimäki, Tuomas
2012
Tietotekniikan koulutusohjelma
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2012-02-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201203091050
https://urn.fi/URN:NBN:fi:tty-201203091050
Tiivistelmä
Aluksi tässä työssä toteutetaan Insta DefSec Oy:ssä erästä projektia varten suunniteltu automaattinen testausjärjestelmä. Testausjärjestelmästä pyritään tunnistamaan sen ongelmat pääasiassa sen toteutuksen ja käytön aikana kerätyn kokemuksen perusteella. Näitä ongelmia ratkotaan laatimalla kolmiosainen kehityssuunnitelma. Lopuksi kehityssuunnitelma arvioidaan esimerkkien avulla.
Testausjärjestelmään kuuluu laiteympäristö, laiteympäristöä ohjaavat sovellukset ja testien tekemiseen tarkoitettu sovelluskehys. Testausjärjestelmä on kehitetty yhtä tuotetta varten, ja tätä on käytetty hyväksi järjestelmän suunnittelussa esimerkiksi yksinkertaistamalla laiteympäristöä ja sen hallintaa.
Sovelluskehys on moduulipohjainen, mutta se käyttää myös datapohjaisten testaussovelluskehysten periaatetta, jossa testidata erotellaan testilogiikasta. Sen arkkitehtuuri on jaettu kolmeen osaan: datankäsittelyyn, yhteyksiin ja raportointiin. Datankäsittely tarjoaa testidatan määrittelyn ja vertailun. Yhteydet tarjoavat testeille yhteydet testausjestelmän osiin ja testattavan tuotteen rajapintoihin. Raportointi tarjoaa keinot testin kulun ja tulosten raportointiin.
Ensimmäinen osa kehityssuunnitelmasta kohdentuu testidatan määrittelyyn ja käsittelyyn. Näitä osia parannetaan helpottamalla testidatan konfigurointia ja ylläpidettävyyttä siirtämällä datan määritykset XML:stä Scala-ohjelmointikielelle.
Toinen osa kehityssuunnitelmasta liittyy sovelluskehyksen tarjoamien yhteyksien käyttöön. Yhteyksien luomista yksinkertaistetaan, ja niiden tarjoama rajapinta suunnitellaan uudelleen. Rajapinnan uudelleensuunnittelulla pyritään helpottamaan eri tyyppisten yhteyksien käyttöä tarjoamalla niiden käyttömallia paremmin vastaavat rajapinnat.
Kolmantena kehitysideana testaussovelluskehykseen lisätään testiasiakasluokka, TestClient. TestClient suunnitellaan tarjoamaan valmista testilogiikkaa, jota voidaan käyttää rakennuspalikoina testeissä. Tällä pyritään yksinkertaistamaan testejä ja vähentämään koodin kopioimista. TestClient toteutetaan Scalalla, ja sen rajapinta suunnitellaan tarjoamaan luonnollista kieltä mukailevan syntaksin, jolla pyritään parantamaan testien luettavuutta.
Kehityssuunnitelmia arvioitiin kolmen esimerkin avulla, joista tehtiin toteutukset olemassa olevalla sovelluskehyksellä ja kehityssuunnitelmat toteuttavalla prototyyppisovelluskehyksellä. Tehdyn arvioinnin perusteella kehitysideoiden todettiin parantavan testien toteuttamisen, ylläpitämisen ja tarkastamisen tuottavuutta. /Kir12
Testausjärjestelmään kuuluu laiteympäristö, laiteympäristöä ohjaavat sovellukset ja testien tekemiseen tarkoitettu sovelluskehys. Testausjärjestelmä on kehitetty yhtä tuotetta varten, ja tätä on käytetty hyväksi järjestelmän suunnittelussa esimerkiksi yksinkertaistamalla laiteympäristöä ja sen hallintaa.
Sovelluskehys on moduulipohjainen, mutta se käyttää myös datapohjaisten testaussovelluskehysten periaatetta, jossa testidata erotellaan testilogiikasta. Sen arkkitehtuuri on jaettu kolmeen osaan: datankäsittelyyn, yhteyksiin ja raportointiin. Datankäsittely tarjoaa testidatan määrittelyn ja vertailun. Yhteydet tarjoavat testeille yhteydet testausjestelmän osiin ja testattavan tuotteen rajapintoihin. Raportointi tarjoaa keinot testin kulun ja tulosten raportointiin.
Ensimmäinen osa kehityssuunnitelmasta kohdentuu testidatan määrittelyyn ja käsittelyyn. Näitä osia parannetaan helpottamalla testidatan konfigurointia ja ylläpidettävyyttä siirtämällä datan määritykset XML:stä Scala-ohjelmointikielelle.
Toinen osa kehityssuunnitelmasta liittyy sovelluskehyksen tarjoamien yhteyksien käyttöön. Yhteyksien luomista yksinkertaistetaan, ja niiden tarjoama rajapinta suunnitellaan uudelleen. Rajapinnan uudelleensuunnittelulla pyritään helpottamaan eri tyyppisten yhteyksien käyttöä tarjoamalla niiden käyttömallia paremmin vastaavat rajapinnat.
Kolmantena kehitysideana testaussovelluskehykseen lisätään testiasiakasluokka, TestClient. TestClient suunnitellaan tarjoamaan valmista testilogiikkaa, jota voidaan käyttää rakennuspalikoina testeissä. Tällä pyritään yksinkertaistamaan testejä ja vähentämään koodin kopioimista. TestClient toteutetaan Scalalla, ja sen rajapinta suunnitellaan tarjoamaan luonnollista kieltä mukailevan syntaksin, jolla pyritään parantamaan testien luettavuutta.
Kehityssuunnitelmia arvioitiin kolmen esimerkin avulla, joista tehtiin toteutukset olemassa olevalla sovelluskehyksellä ja kehityssuunnitelmat toteuttavalla prototyyppisovelluskehyksellä. Tehdyn arvioinnin perusteella kehitysideoiden todettiin parantavan testien toteuttamisen, ylläpitämisen ja tarkastamisen tuottavuutta. /Kir12