Model Testing Framework for Next Games Oy
Niiranen, Mikko (2016)
Niiranen, Mikko
Kajaanin ammattikorkeakoulu
2016
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2016112517406
https://urn.fi/URN:NBN:fi:amk-2016112517406
Tiivistelmä
Tämä opinnäytetyö toteutettiin Next Games Oy:lle, joka on suomalainen mobiilipeliyritys Helsingissä. Tämän työn tarkoituksena oli luoda sovelluskehys, joka mahdollistaisi automaattisten testien kirjoittamisen pelinkehittäjille ja rohkaisisi lisäämään automatisoitua testausta, johtaen tuotteen korkeampaan laatuun. Esimerkki käyttötapauksia testi sovelluskehykselle ovat uusien ominaisuuksien testaaminen, turvallisuus testaaminen, migraatio testaaminen ja regressio testaaminen.
Testausjärjestelmän pohjaksi perehdyttiin automatisoidun testaamisen ratkaisuihin. Tämä sisälsi Unityn tarjoamien työkalujen arviointia ja niiden kehittämistä mahdollistamaan yksinkertaista peli kohtaista testaamista. Näiden tietojen perusteella toteutettiin joukko luokkia, jotka luotiin helpottamaan pelin mallin alustamista ennalta määritellyllä datalla testikäyttöön. Mallin alustamista kokeiltiin useilla eri tavoilla ja niistä valittiin paras huomioiden helppokäyttöisyyden ja mahdollisimman pieni vaikutus käännös aikoihin. Lisäksi mahdollisuudet testien suorittamiseen sekä kehittäjän omalla koneella, että osana jatkuvaa integraatiota selvitettiin.
Unity Editor Test Runner, joka hyödyntää NUnit yksikkötestaussovelluskehystä valittiin testien alustaksi koska se on sisällytetty Unityyn ja on näin helposti integroitavissa osaksi Unityn työnkulkua. Testit oli helppo suorittaa sekä Unityn editorissa, että osana jatkuvaa integraatiota. Toteutettu testausjärjestelmä alustaa pelaajan mallin annetusta staattisesta ja muuttuvasta pelin ja pelaajan tilasta. Koska tilan tallentamiseen käytetään JSON tiedostoformaattia, joka on suhteellisen hidas deserialisoida, paras tapa alustaa pelin malli oli deserialisoida data yksittäiselle testille ajonaikana. Tällä tavoin hidas datan deserialisatio tapahtuu vain kehityksen alla oleville testeille, eikä vie kehittäjän aikaa deserialisoimalla kaikkia testitilanteita.
Luotu testausjärjestelmä esiteltiin yrityksen ohjelmoijille. Tulevaisuudessa tullaan myös pitämään työpaja, jossa käydään tarkemmin läpi, kuinka luotua testausjärjestelmää käytetään.
Testausjärjestelmän pohjaksi perehdyttiin automatisoidun testaamisen ratkaisuihin. Tämä sisälsi Unityn tarjoamien työkalujen arviointia ja niiden kehittämistä mahdollistamaan yksinkertaista peli kohtaista testaamista. Näiden tietojen perusteella toteutettiin joukko luokkia, jotka luotiin helpottamaan pelin mallin alustamista ennalta määritellyllä datalla testikäyttöön. Mallin alustamista kokeiltiin useilla eri tavoilla ja niistä valittiin paras huomioiden helppokäyttöisyyden ja mahdollisimman pieni vaikutus käännös aikoihin. Lisäksi mahdollisuudet testien suorittamiseen sekä kehittäjän omalla koneella, että osana jatkuvaa integraatiota selvitettiin.
Unity Editor Test Runner, joka hyödyntää NUnit yksikkötestaussovelluskehystä valittiin testien alustaksi koska se on sisällytetty Unityyn ja on näin helposti integroitavissa osaksi Unityn työnkulkua. Testit oli helppo suorittaa sekä Unityn editorissa, että osana jatkuvaa integraatiota. Toteutettu testausjärjestelmä alustaa pelaajan mallin annetusta staattisesta ja muuttuvasta pelin ja pelaajan tilasta. Koska tilan tallentamiseen käytetään JSON tiedostoformaattia, joka on suhteellisen hidas deserialisoida, paras tapa alustaa pelin malli oli deserialisoida data yksittäiselle testille ajonaikana. Tällä tavoin hidas datan deserialisatio tapahtuu vain kehityksen alla oleville testeille, eikä vie kehittäjän aikaa deserialisoimalla kaikkia testitilanteita.
Luotu testausjärjestelmä esiteltiin yrityksen ohjelmoijille. Tulevaisuudessa tullaan myös pitämään työpaja, jossa käydään tarkemmin läpi, kuinka luotua testausjärjestelmää käytetään.