Integrating Unit Testing Processes into Large Legacy Software System Development Process
Lindqvist, Markus (2014)
Lindqvist, Markus
Metropolia Ammattikorkeakoulu
2014
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201405066003
https://urn.fi/URN:NBN:fi:amk-201405066003
Tiivistelmä
Tässä esitetyn tutkimuksen tarkoituksena oli arvioida millaisia hyötyjä yksikkötestauskäytäntöjen käyttöönotolla saavutettaisiin vanhan ohjelmistotuotteen tuotekehityksessä.
Yksikkötestauksen ja yksikkötestattavuuden vaikutuksia tuote X:n arvioitiin kuuden vuoden ajalta, vuodesta 2007 vuoteen 2013. Tutkimus osoitti, että yksikkötestaukselle soveltuvan ympäristön luominen ohjelmistokehittäjille voi viedä vuosia kun kyseessä on monimutkainen tuote.
Ensimmäisenä parannuksena yksikkötestaustyökalut liitettiin tuotteeseen ja jatkuvaan integraatioon (continuous integration). Jatkuvan tarkkailun (continuous inspection) raportit luotiin kehityksen seuraamiseksi. Kävi selväksi, että kunnon työkalut ja infrastruktuurin ylläpito ovat oleellinen osa tavoitteisiin pääsemistä. Kehittäjien kouluttamiseksi järjestettiin koulutustilaisuuksia ja järjestelmät dokumentoitiin.
Tuotteen arkkitehtuurin järjestelmällinen kehitys oli oleellinen osa testattavuuden luomista. Monoliittinen tuote pitää modularisoida ja refaktoroida sellaiseksi jossa komponenttien testaaminen on mielekästä. Tutkimuksen tulokset osoittavat että tuotteen modularisointi oleellisesti paransi mahdollisuuksia yksikkötestaukseen.
Kehitystyö yksikkötestauksen osalta tehostuu esimerkiksi virheiden paikallistamisen osalta kun työskennellään pienempien komponenttien kanssa. Pienempien kokonaisuuksien mittaamisesta seuraa näkyviä tuloksia. Kohtuullisen kokoisissa komponenteissa yksikkötestikattavuuden kasvu näkyy ja motivoi ohjelmistokehittäjiä jatkamaan käytäntöä.
Lopputuloksena voidaan todeta, että yksikkötestauskäytännöt on mahdollista sisällyttää haasteellisen tuotteen tuotekehitysprosessiin jos tahtotila siihen löytyy. Hyvä infrastruktuuri mahdollistaa ohjelmistokehittäjien työn, vähitellen lisäten yksikkötestauksen käyttöä ja testien kattavuutta, josta seuraa tuotteen laadun parantuminen.
Yksikkötestauksen ja yksikkötestattavuuden vaikutuksia tuote X:n arvioitiin kuuden vuoden ajalta, vuodesta 2007 vuoteen 2013. Tutkimus osoitti, että yksikkötestaukselle soveltuvan ympäristön luominen ohjelmistokehittäjille voi viedä vuosia kun kyseessä on monimutkainen tuote.
Ensimmäisenä parannuksena yksikkötestaustyökalut liitettiin tuotteeseen ja jatkuvaan integraatioon (continuous integration). Jatkuvan tarkkailun (continuous inspection) raportit luotiin kehityksen seuraamiseksi. Kävi selväksi, että kunnon työkalut ja infrastruktuurin ylläpito ovat oleellinen osa tavoitteisiin pääsemistä. Kehittäjien kouluttamiseksi järjestettiin koulutustilaisuuksia ja järjestelmät dokumentoitiin.
Tuotteen arkkitehtuurin järjestelmällinen kehitys oli oleellinen osa testattavuuden luomista. Monoliittinen tuote pitää modularisoida ja refaktoroida sellaiseksi jossa komponenttien testaaminen on mielekästä. Tutkimuksen tulokset osoittavat että tuotteen modularisointi oleellisesti paransi mahdollisuuksia yksikkötestaukseen.
Kehitystyö yksikkötestauksen osalta tehostuu esimerkiksi virheiden paikallistamisen osalta kun työskennellään pienempien komponenttien kanssa. Pienempien kokonaisuuksien mittaamisesta seuraa näkyviä tuloksia. Kohtuullisen kokoisissa komponenteissa yksikkötestikattavuuden kasvu näkyy ja motivoi ohjelmistokehittäjiä jatkamaan käytäntöä.
Lopputuloksena voidaan todeta, että yksikkötestauskäytännöt on mahdollista sisällyttää haasteellisen tuotteen tuotekehitysprosessiin jos tahtotila siihen löytyy. Hyvä infrastruktuuri mahdollistaa ohjelmistokehittäjien työn, vähitellen lisäten yksikkötestauksen käyttöä ja testien kattavuutta, josta seuraa tuotteen laadun parantuminen.