Testivetoisen ohjelmistokehityksen pilotointi vakuutusalan ohjelmistotuotannossa
Meusel, Mari (2018)
Meusel, Mari
2018
Tietotekniikka
Talouden ja rakentamisen tiedekunta - Faculty of Business and Built Environment
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ä
2018-09-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201808212184
https://urn.fi/URN:NBN:fi:tty-201808212184
Tiivistelmä
Testivetoinen ohjelmistokehitys (Test-Driven Development, TDD) on kehitystapa, jossa yksikkötestit kirjoitetaan ennen uuden toiminnallisuuden ohjelmointia. TDD-kehitystavalle on esitetty useita etuja verrattuna tapaan, jossa yksikkötestit kirjoitetaan vasta ohjelmointityön jälkeen. Tässä päättötyössä TDD-kehitystapaa pilotoitiin vakuutusalan ohjelmistotuotannossa ja arvioitiin kehitystavan etuja ja soveltuvuutta päättötyön tilanneen yrityksen ohjelmistokehitysympäristöön ja toimintatapoihin. Kehitystapaa käytettiin tilaajan kahden oman ohjelmistotuotteen välisen rajapinnan toteutuksessa.
TDD-kehitystavan esitettyjä etuja on hankala verrata muihin ohjelmistokehitystapoihin, koska vertailukelpoisten tulosten saamiseksi sama toiminnallisuus pitäisi ohjelmoida kahdella eri kehitystavalla. Jos yksikkötestit toteutetaan yhtä kattavasti millä tahansa kehitysmenetelmällä, useat TDD-menetelmän eduiksi esitetyt väitteet toteutuvat käytetystä menetelmästä riippumatta. Pilotoinnin perusteella menetelmän eduiksi voidaan todentaa, että TDD-kehitystavan käyttö ohjaa syntyvää ohjelmistokoodia yksikkötestikelpoiseksi sekä nopeuttaa ohjelmistotyöskentelyä, kun työn alla olevaa kooditoteutusta pääsee nopeasti testaamaan yksikkötestien avulla.
Pilotoinnin sekä päättötyön tilaajan prosessikehitystiimin työskentelyn tuloksena päädyttiin lisäämään yksikkötestien määrää ohjelmistotuotteiden olemassa oleviin, liiketoiminnan kannalta kriittisimpiin osuuksiin. Tilaajan sisäiset vaatimukset uusien toiminnallisuuksien yksikkötestien kattavuudesta selkeytetään sekä niiden toteutumista valvotaan koodikatselmointien yhteydessä. Kehityskeskusteluissa kävi myös ilmi, että sisäistä koulutusta yksikkötestien toteuttamiselle tarvitaan ja sellaista myös aiotaan järjestää nykyisille ja uusille ohjelmistokehittäjille. Ohjelmistokehittäjän omaan harkintaan jää, mitä ohjelmistokehitystapaa haluaa käyttää.
TDD-kehitystavan esitettyjä etuja on hankala verrata muihin ohjelmistokehitystapoihin, koska vertailukelpoisten tulosten saamiseksi sama toiminnallisuus pitäisi ohjelmoida kahdella eri kehitystavalla. Jos yksikkötestit toteutetaan yhtä kattavasti millä tahansa kehitysmenetelmällä, useat TDD-menetelmän eduiksi esitetyt väitteet toteutuvat käytetystä menetelmästä riippumatta. Pilotoinnin perusteella menetelmän eduiksi voidaan todentaa, että TDD-kehitystavan käyttö ohjaa syntyvää ohjelmistokoodia yksikkötestikelpoiseksi sekä nopeuttaa ohjelmistotyöskentelyä, kun työn alla olevaa kooditoteutusta pääsee nopeasti testaamaan yksikkötestien avulla.
Pilotoinnin sekä päättötyön tilaajan prosessikehitystiimin työskentelyn tuloksena päädyttiin lisäämään yksikkötestien määrää ohjelmistotuotteiden olemassa oleviin, liiketoiminnan kannalta kriittisimpiin osuuksiin. Tilaajan sisäiset vaatimukset uusien toiminnallisuuksien yksikkötestien kattavuudesta selkeytetään sekä niiden toteutumista valvotaan koodikatselmointien yhteydessä. Kehityskeskusteluissa kävi myös ilmi, että sisäistä koulutusta yksikkötestien toteuttamiselle tarvitaan ja sellaista myös aiotaan järjestää nykyisille ja uusille ohjelmistokehittäjille. Ohjelmistokehittäjän omaan harkintaan jää, mitä ohjelmistokehitystapaa haluaa käyttää.