Testausautomaation käyttöönotto uudessa ohjelmistohankkeessa
Mujunen, Kalle (2020)
Mujunen, Kalle
2020
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020112323962
https://urn.fi/URN:NBN:fi:amk-2020112323962
Tiivistelmä
Tämä opinnäytetyö käsittelee automaatiotestausta tilanteessa, jossa yritys tai organisaatio ottaa käyttöön testausautomaation uuden, ketterillä menetelmillä kehitetyn järjestelmän käyttöönoton yhteydessä. Opinnäytetyö toteutettiin kirjallisiin lähteisiin tukeutumalla. Tavoitteena oli selvittää, miten varmistetaan testausautomaation käyttöönottoa projektitasolla, mitkä ketterien sovellustiimien ominaisuudet ja taidot edistävät testausautomaation käyttöönottoa, ja mikä on testaajien ja testaamisen merkitys ketterässä sovelluskehityshankkeessa.
Testaaminen tarkoittaa vikojen etsimistä, toiminnallisuuden ja ominaisuuksien testaamista ja ohjelman tutkimista sen tarkoituksenmukaisuuden näkökulmasta. Testaaminen perustuu suunnitelmallisuuteen, tavoitteellisuuteen ja ennalta määriteltyihin tuloksiin. Testaamisen tulokset raportoidaan ja näiden raporttien pohjalta suunnitellaan tarvittavat muutostoimet.
Työssä selvitettiin testausautomaatioon liittyviä hyötyjä ja haittoja. Testausautomaatioon liittyvien hyötyjen saaminen edellytti automatisoituun testaukseen liittyvien rajoitteiden tunnistamista ja automaattitestauksen suunnittelua, sekä automaattitestaukseen valittavien testitapausten ja -skriptien määrittämistä ja kirjoittamista. Testausautomaatio ei ole vastaus kaikkeen testaukseen automatisoitujen testitapausten ylläpitoon liittyvän työmäärän vuoksi.
Ketterät menetelmät painottavat yksilöitä ja vuorovaikutusta, asiakasyhteistyötä, toimivan ohjelman julkaisua ja muutokseen reagointia. Ketteryydellä tarkoitetaan myös kykyä luoda muutosta muutokseen reagoinnin lisäksi. Tietojärjestelmäkehityksessä tämä tarkoittaa iteratiivista, sykleittäin etenevää kehitysmallia, jonka aikana jokainen kehitetty ohjelman moduuli testattiin iteraation aikana ennen julkaisemista.
Kuvitteellisessa esimerkkitapauksessa asiakasorganisaatio otti käyttöön testausautomaation kehittäessään uutta järjestelmää tarpeisiinsa. Testausautomaation onnistuneeseen käyttöönottoon liittyi vaatimus siitä ymmärryksestä, että testausautomaatio on itsessään ohjelmisto, ja tämä tarkoitti kohdeorganisaation näkökulmasta kahta samanaikaista ohjelmistoprojektia ja niiden tarpeiden määrittelyä.
Johtopäätös oli, että hankkeen onnistuminen edellytti kaikilta osapuolilta sitoutumista, toimivaa vuorovaikutusta ja asiantuntemusta. Testausautomaation onnistunut käyttö vaati ammatillista osaamista, joka sisältää kykyä ohjelmoida, suunnitella, ylläpitää ja testata testiskriptejä. Tämän lisäksi automaatiotestaukseen määritellyt testitapaukset pitää osata tunnistaa ja määritellä oikein kokonaisuuden hallitsemisen varmistamiseksi.
Työn aikana nousi esiin jatkotutkimuksen aihe, joka koskee tietojärjestelmähankkeiden sisäistä kommunikaatiota, sen laatua ja niiden vaikutusta hankkeen sujuvuuteen.
Testaaminen tarkoittaa vikojen etsimistä, toiminnallisuuden ja ominaisuuksien testaamista ja ohjelman tutkimista sen tarkoituksenmukaisuuden näkökulmasta. Testaaminen perustuu suunnitelmallisuuteen, tavoitteellisuuteen ja ennalta määriteltyihin tuloksiin. Testaamisen tulokset raportoidaan ja näiden raporttien pohjalta suunnitellaan tarvittavat muutostoimet.
Työssä selvitettiin testausautomaatioon liittyviä hyötyjä ja haittoja. Testausautomaatioon liittyvien hyötyjen saaminen edellytti automatisoituun testaukseen liittyvien rajoitteiden tunnistamista ja automaattitestauksen suunnittelua, sekä automaattitestaukseen valittavien testitapausten ja -skriptien määrittämistä ja kirjoittamista. Testausautomaatio ei ole vastaus kaikkeen testaukseen automatisoitujen testitapausten ylläpitoon liittyvän työmäärän vuoksi.
Ketterät menetelmät painottavat yksilöitä ja vuorovaikutusta, asiakasyhteistyötä, toimivan ohjelman julkaisua ja muutokseen reagointia. Ketteryydellä tarkoitetaan myös kykyä luoda muutosta muutokseen reagoinnin lisäksi. Tietojärjestelmäkehityksessä tämä tarkoittaa iteratiivista, sykleittäin etenevää kehitysmallia, jonka aikana jokainen kehitetty ohjelman moduuli testattiin iteraation aikana ennen julkaisemista.
Kuvitteellisessa esimerkkitapauksessa asiakasorganisaatio otti käyttöön testausautomaation kehittäessään uutta järjestelmää tarpeisiinsa. Testausautomaation onnistuneeseen käyttöönottoon liittyi vaatimus siitä ymmärryksestä, että testausautomaatio on itsessään ohjelmisto, ja tämä tarkoitti kohdeorganisaation näkökulmasta kahta samanaikaista ohjelmistoprojektia ja niiden tarpeiden määrittelyä.
Johtopäätös oli, että hankkeen onnistuminen edellytti kaikilta osapuolilta sitoutumista, toimivaa vuorovaikutusta ja asiantuntemusta. Testausautomaation onnistunut käyttö vaati ammatillista osaamista, joka sisältää kykyä ohjelmoida, suunnitella, ylläpitää ja testata testiskriptejä. Tämän lisäksi automaatiotestaukseen määritellyt testitapaukset pitää osata tunnistaa ja määritellä oikein kokonaisuuden hallitsemisen varmistamiseksi.
Työn aikana nousi esiin jatkotutkimuksen aihe, joka koskee tietojärjestelmähankkeiden sisäistä kommunikaatiota, sen laatua ja niiden vaikutusta hankkeen sujuvuuteen.