Testaus jatkuvan integroinnin osana Metropolian ohjelmistotuotantoprojekteissa
Vuokoski, Aki (2011)
Vuokoski, Aki
Metropolia Ammattikorkeakoulu
2011
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201105188602
https://urn.fi/URN:NBN:fi:amk-201105188602
Tiivistelmä
Insinöörityön tavoitteena oli tutkia automatisoidun testauksen mahdollisuuksia automatisoidulla koonti- ja testausjärjestelmällä, jota kehitettiin Metropolia Ammattikorkeakoulun ohjelmistotuotantoprojektikurssia varten. Automatisoinnin teoria perustuu jatkuvaan integrointiin. Tutkimuksen kriteereihin kuului huomioida ohjelmistotekniikan opiskelijoiden tietotaso ja kurssin aikataulu, jotta opiskelijat pääsisivät työn tietojen pohjalta helposti alkuun. Työ rajattiin kattamaan Java-ohjelmointiprojektien testauksen.
Koonti- ja testausjärjestelmän pohjaksi valittiin jatkuvan integroinnin työkalu Hudson ja koontityökalu Maven 2. Hudson osoittautui varsin helppokäyttöiseksi onnistuneen asennuksen jälkeen. Maven 2 vaatii opiskelijalta konfiguraatiotiedoston hallintakykyä, joten työssä keskityttiin vahvasti käytännön esimerkkeihin.
Työkaluissa ja menetelmissä hyödynnettiin avoimen lähdekoodin ratkaisuja. Normaali JUnit yksikkötestaus ja staattinen analyysi todettiin helpoksi ottaa käyttöön osaksi jatkuvaa integraatiota. Tämä on opiskelijoiden oman kiinnostuksen pohjalta mahdollista laajentaa kattamaan tietokantatestauksen DBUnitilla ja XML-testauksen XMLUnitilla. Verkkopohjaisten projektien hyväksymistestien tekeminen havaittiin varsin pienellä vaivalla mahdolliseksi Selenium-testauksessa, jos projektilaisilla on aikaa testiympäristön raskaampaan konfiguroimisvaiheeseen.
Maven-pohjaisten testausratkaisujen saatavuus on vaihtelevaa, joten kaikkia testaustyylejä ei opiskelijoille suositeltu. Penetraatiotestauksen, mutaatiotestauksen ja Swing-hyväksymistestauksen automatisointi vaatii turhan paljon vaivaa ohjelmistotuotantoprojektikurssin puitteisiin.
Ohjelmistotuotantoprojekteissa testaus jää usein muiden töiden alle pelkäksi suunnitelmaksi. Tämän työn esimerkit auttavat opiskelijat helposti alkuun automatisoidussa testauksessa, jolloin uuden tiedon opiskeluun menee vähemmän aikaa ja motivaatio testaukseen voi kasvaa.
Koonti- ja testausjärjestelmän pohjaksi valittiin jatkuvan integroinnin työkalu Hudson ja koontityökalu Maven 2. Hudson osoittautui varsin helppokäyttöiseksi onnistuneen asennuksen jälkeen. Maven 2 vaatii opiskelijalta konfiguraatiotiedoston hallintakykyä, joten työssä keskityttiin vahvasti käytännön esimerkkeihin.
Työkaluissa ja menetelmissä hyödynnettiin avoimen lähdekoodin ratkaisuja. Normaali JUnit yksikkötestaus ja staattinen analyysi todettiin helpoksi ottaa käyttöön osaksi jatkuvaa integraatiota. Tämä on opiskelijoiden oman kiinnostuksen pohjalta mahdollista laajentaa kattamaan tietokantatestauksen DBUnitilla ja XML-testauksen XMLUnitilla. Verkkopohjaisten projektien hyväksymistestien tekeminen havaittiin varsin pienellä vaivalla mahdolliseksi Selenium-testauksessa, jos projektilaisilla on aikaa testiympäristön raskaampaan konfiguroimisvaiheeseen.
Maven-pohjaisten testausratkaisujen saatavuus on vaihtelevaa, joten kaikkia testaustyylejä ei opiskelijoille suositeltu. Penetraatiotestauksen, mutaatiotestauksen ja Swing-hyväksymistestauksen automatisointi vaatii turhan paljon vaivaa ohjelmistotuotantoprojektikurssin puitteisiin.
Ohjelmistotuotantoprojekteissa testaus jää usein muiden töiden alle pelkäksi suunnitelmaksi. Tämän työn esimerkit auttavat opiskelijat helposti alkuun automatisoidussa testauksessa, jolloin uuden tiedon opiskeluun menee vähemmän aikaa ja motivaatio testaukseen voi kasvaa.