Designing and Implementing Unit and Integration Tests in a Robotics Environment
Franciskovic, Toni (2024)
Franciskovic, Toni
2024
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-202405079847
https://urn.fi/URN:NBN:fi:amk-202405079847
Tiivistelmä
Ohjelmistotestauksella on tärkeä rooli nykyaikaisissa ohjelmistokehitysprojekteissa. Tämän opinnäytetyön tavoitteena oli suunnitella ja kehittää kattava testikehys Robot Operating System 2 sovelluksen ympärille. Testit suunniteltiin niin, että ne kattoivat sekä yksikkö- että integraatiotestit. Testattavaan lähdekoodiin pyrittiin tekemään mahdollisimman vähän sellaisia muutoksia, jotka eivät johtuneet testien paljastamista virheistä ohjelmistossa. Opinnäytetyö tehtiin Insta Advance Oy:lle, joka tarjoaa ohjelmistokonsultointipalveluita.
Testit kehitettiin Python- ja C++ -kielillä, sillä testattava lähdekoodi oli kirjoitettu kyseisillä ohjelmointikielillä. Pythonin unittest- ja Pytest-moduuleita hyödynnettiin yhdessä pytest-cov-laajennuksen kanssa Python-pakettien testien rakentamiseen sekä näiden kattavuuden seurantaan. C++ pakettien testit kehitettiin Googlen GTest-kehystä sekä lcov-seurantatyökalua hyödyntäen. Monien verkkolähteiden, kirjojen ja raporttien avulla opinnäytetyössä kehitettiin kattava testikirjasto, joka kattoi yksittäisten moduulien testaamisen sekä näiden integraation.
Opinnäytetyön aikana kehitetyt yksikkötestit kattoivat 98,3 prosenttia testin alla olevasta ohjelmakoodista, mitä voidaan pitää tyydyttävänä tuloksena. Itsenäisten ohjelmayksiköiden väliset kriittiset kommunikaatiot testattiin onnistuneesti integraatiotestauksen avulla. Kehitetty testikirjasto täytti opinnäytetyölle asetetut vaatimukset ja tavoitteet.
Sillä Robot Operating System 2 sovellukseen kohdistuvaa ohjelmistotestausta ei oltu aikaisemmin tehty Insta Advance Oy:ssä, tämän opinnäytetyön aikana tehty tutkimus- ja kehitystyö yhdisti runsaan, mutta hajallaan olevan tiedon eri lähteistä yhdeksi kattavaksi kokonaisuudeksi.
Testit kehitettiin Python- ja C++ -kielillä, sillä testattava lähdekoodi oli kirjoitettu kyseisillä ohjelmointikielillä. Pythonin unittest- ja Pytest-moduuleita hyödynnettiin yhdessä pytest-cov-laajennuksen kanssa Python-pakettien testien rakentamiseen sekä näiden kattavuuden seurantaan. C++ pakettien testit kehitettiin Googlen GTest-kehystä sekä lcov-seurantatyökalua hyödyntäen. Monien verkkolähteiden, kirjojen ja raporttien avulla opinnäytetyössä kehitettiin kattava testikirjasto, joka kattoi yksittäisten moduulien testaamisen sekä näiden integraation.
Opinnäytetyön aikana kehitetyt yksikkötestit kattoivat 98,3 prosenttia testin alla olevasta ohjelmakoodista, mitä voidaan pitää tyydyttävänä tuloksena. Itsenäisten ohjelmayksiköiden väliset kriittiset kommunikaatiot testattiin onnistuneesti integraatiotestauksen avulla. Kehitetty testikirjasto täytti opinnäytetyölle asetetut vaatimukset ja tavoitteet.
Sillä Robot Operating System 2 sovellukseen kohdistuvaa ohjelmistotestausta ei oltu aikaisemmin tehty Insta Advance Oy:ssä, tämän opinnäytetyön aikana tehty tutkimus- ja kehitystyö yhdisti runsaan, mutta hajallaan olevan tiedon eri lähteistä yhdeksi kattavaksi kokonaisuudeksi.