Yksikkö- ja integraatiotestaus .NET ympäristössä
Kleemola, Joona (2023)
Kleemola, Joona
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023060217518
https://urn.fi/URN:NBN:fi:amk-2023060217518
Tiivistelmä
Opinnäytetyön tavoitteena oli luoda sovelluksen .NET-rajapintasovellukseen automaatiotestausta yksikkö- ja integraatiotestien muodossa. Kyseisessä sovelluksessa ei automaatiotestausta ole aikaisemmin ollut käytössä, joten testauksen luontiin lähdetään tyhjältä pöydältä, ja tällöin testien pohjatyön luominen on tärkeässä asemassa. Kun testien pohjat ja mallit on tehty hyvin, niin muiden kehittäjien on helppo lähteä kasvattamaan testikattavuutta.
Toimeksiantajana työssä toimi IT-alan yritys, Riihicloud Oy. Riihicloudin ohjelmiston luotettavuutta ja vakautta kehitetään jatkuvasti, ja tätä tukemaan haluttiin ottaa käyttöön automatisoitua testausta, jolloin manuaalisen testauksen tueksi saadaan nopeasti ajettavia yksikkötestejä ja laajempaa kokonaisuutta testaavia integraatiotestejä. Tällöin myös kehitysvaiheessa tulleita mahdollisia virheitä ja bugeja voidaan saada kiinni ennen manuaalisen testauksen aloitusta.
Toteutuksessa haettiin testaukseen käytettävien pohjaluokkien luomista ja testimallien tekoa, eli laajempi testikattavuus jätetään sovelluksen kehitystiimin tehtäväksi. Työn valmistuttua testikattavuuden laajentaminen on kevyempi tehdä, kun testeistä löytyy malleja ja esimerkkejä, sekä niiden kehittämisen tukemiseksi on lisätty apuluokkia. Tällöin myös vähemmän testejä tehnyt kehittäjä pääsee tehokkaammin alkuun testien luomisessa.
Testit toteutettiin käyttämällä XUnit .NET-kirjastolla. Testien pohjien ja apuluokkien luomisen jälkeen sovellukselle luotiin automatisoituja testejä, joita kehittäjä voi ajaa esimerkiksi Visual Studio työkalulla, ja tämän lisäksi ne lisättiin ajettavaksi sovelluksen Azure Pipeline julkaisuputkeen, jolloin testit ajetaan ennen, kun sovelluksesta tehdään uutta julkaisuversiota.
Toimeksiantajana työssä toimi IT-alan yritys, Riihicloud Oy. Riihicloudin ohjelmiston luotettavuutta ja vakautta kehitetään jatkuvasti, ja tätä tukemaan haluttiin ottaa käyttöön automatisoitua testausta, jolloin manuaalisen testauksen tueksi saadaan nopeasti ajettavia yksikkötestejä ja laajempaa kokonaisuutta testaavia integraatiotestejä. Tällöin myös kehitysvaiheessa tulleita mahdollisia virheitä ja bugeja voidaan saada kiinni ennen manuaalisen testauksen aloitusta.
Toteutuksessa haettiin testaukseen käytettävien pohjaluokkien luomista ja testimallien tekoa, eli laajempi testikattavuus jätetään sovelluksen kehitystiimin tehtäväksi. Työn valmistuttua testikattavuuden laajentaminen on kevyempi tehdä, kun testeistä löytyy malleja ja esimerkkejä, sekä niiden kehittämisen tukemiseksi on lisätty apuluokkia. Tällöin myös vähemmän testejä tehnyt kehittäjä pääsee tehokkaammin alkuun testien luomisessa.
Testit toteutettiin käyttämällä XUnit .NET-kirjastolla. Testien pohjien ja apuluokkien luomisen jälkeen sovellukselle luotiin automatisoituja testejä, joita kehittäjä voi ajaa esimerkiksi Visual Studio työkalulla, ja tämän lisäksi ne lisättiin ajettavaksi sovelluksen Azure Pipeline julkaisuputkeen, jolloin testit ajetaan ennen, kun sovelluksesta tehdään uutta julkaisuversiota.