Suosituimmat C++ yksikkötes-tauskirjastot ja niiden erot
Vilén, Timo (2022)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2022102621608
https://urn.fi/URN:NBN:fi:amk-2022102621608
Tiivistelmä
Opinnäytetyössä vertailtiin - kolmea C++ -kielen yksikkötestauskirjastoa ja niiden käyttöä ohjelmistokehityksessä kehittäjän näkökulmasta. Aihe syntyi kirjoittajan halusta kehittää omaa ammattitaitoaan sekä kiinnostuksesta ohjelmistotestaukseen.
Työn tärkeimmät tutkimuskysymykset olivat: Mitä on yksikkötestaus ja miten se sijoittuu ohjelmistotestauksen kontekstiin? Miten yksikkötestauskirjastoja käytetään C++ -kielen kanssa? Miten yksikkötestauskirjastot vertautuvat toisiinsa?
Opinnäytetyön teoriassa käsitellään ensin ohjelmistotestauksen teoriaa sekä perehdytään tarkemmin yksikkötestaukseen ja sen käytäntöihin. Teoria on kerätty aiheeseen liittyvästä kirjallisuudesta sekä sähköisistä lähteistä.
Vertailun käytännön osuudessa perehdytään valittujen GoogleTest-, Catch2- sekä CppuUTest-yksikkötestauskirjastojen asentamiseen ja käyttämiseen yksinkertaistetussa esimerkkitilanteessa. Tämän lisäksi vertailussa huomioitiin yksikkötestauskirjastojen tekniset ominaisuudet, dokumentaatio sekä niiden tuottama raportointi. Verrokkina käytettiin Microsoftin yksikkötestauskirjastoa C++ -kielelle.
Vertailluista yksikkötestauskirjastoista oli vaikea löytää yhtä, selkeästi muita parempaa, mutta sekä Googletest että Catch2 olivat parempia kuin CppUTest. Yllättävintä oli verrokin heikko menestys vertailun monella osa-alueella. Opin-näytetyön suurempi arvo onkin enemmän käytännönläheisessä, esimerkeillä valotetussa lähestymistavassa, joka voi auttaa muitakin yksikkötestauskirjastojen käyttöönotossa ja käytössä.
Työn tärkeimmät tutkimuskysymykset olivat: Mitä on yksikkötestaus ja miten se sijoittuu ohjelmistotestauksen kontekstiin? Miten yksikkötestauskirjastoja käytetään C++ -kielen kanssa? Miten yksikkötestauskirjastot vertautuvat toisiinsa?
Opinnäytetyön teoriassa käsitellään ensin ohjelmistotestauksen teoriaa sekä perehdytään tarkemmin yksikkötestaukseen ja sen käytäntöihin. Teoria on kerätty aiheeseen liittyvästä kirjallisuudesta sekä sähköisistä lähteistä.
Vertailun käytännön osuudessa perehdytään valittujen GoogleTest-, Catch2- sekä CppuUTest-yksikkötestauskirjastojen asentamiseen ja käyttämiseen yksinkertaistetussa esimerkkitilanteessa. Tämän lisäksi vertailussa huomioitiin yksikkötestauskirjastojen tekniset ominaisuudet, dokumentaatio sekä niiden tuottama raportointi. Verrokkina käytettiin Microsoftin yksikkötestauskirjastoa C++ -kielelle.
Vertailluista yksikkötestauskirjastoista oli vaikea löytää yhtä, selkeästi muita parempaa, mutta sekä Googletest että Catch2 olivat parempia kuin CppUTest. Yllättävintä oli verrokin heikko menestys vertailun monella osa-alueella. Opin-näytetyön suurempi arvo onkin enemmän käytännönläheisessä, esimerkeillä valotetussa lähestymistavassa, joka voi auttaa muitakin yksikkötestauskirjastojen käyttöönotossa ja käytössä.