Hajautetun testausjärjestelmän integraation toteuttamisvaihtoehdot
Ollinen, Lassi (2023)
Ollinen, Lassi
2023
Automaatiotekniikan DI-ohjelma - Master's Programme in Automation Engineering
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2023-05-09
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202304254407
https://urn.fi/URN:NBN:fi:tuni-202304254407
Tiivistelmä
Diplomityössä tutkittiin, millä eri tavoilla voidaan toteuttaa hajautetun testausjärjestelmän integrointi, toteutettiin yksi vaihtoehto ja tutkittiin kuinka se vastasi työssä asetettuihin vaatimuksiin. Työn käytännönosuudessa Sandvikille® toteutettiin jatkuvan integraation palvelu Jenkinsin® ja hajautetun Creanex-simulaattoritestausympäristön® välinen integraatio. Jenkins ja Creanex-simulaattorit yhdistettiin yhdeksi jatkuvan integraation putkeksi, jossa Jenkinsissä tapahtuva yksikkötestaus yhdistettiin simulaattoreilla tapahtuvaan integraatio- ja järjestelmätestaukseen. Keskeisimmät tutkimuskysymykset olivat: millaisilla suunnittelumalleilla hajautettu järjestelmä saadaan integroitua, ja kuinka toteutettu järjestelmäintegraatio täyttää sille asetetut vaatimukset.
Työn teoriaosuudessa käsiteltiin yleisesti ohjelmistokehitystä ja testausta eri malleilla sekä millä erilaisilla järjestelmillä testausta voidaan toteuttaa. Teoriassa järjestelmäintegraation suunnittelumalleja tarkasteltiin siitä näkökulmasta, kuinka hyvin niillä pystytään toteuttamaan hajautetun järjestelmän integraatio, sekä mitä hyötyjä ja haasteita niillä on toisiinsa verrattuna. Teoriassa järjestelmäintegraatiolle välttämätöntä viestintää tarkasteltiin paitsi järjestelmäarkkitehtuurin myös yleisesti eri viestintätekniikoiden näkökulmasta. Teoriassa lisäksi käsiteltiin relaatio- ja oliotietokantarakenteita sekä mitä hyötyjä ja haasteita niillä on toisiinsa verrattuna hajautetun järjestelmän tietokantaratkaisun näkökulmasta.
Työn käytännön osuudessa toteutettiin teorian pohjalta Sandvikin hajautetun testausympäristön integraatio. Käytännön osiossa vertailtiin, kuinka pipeline-, reititin- ja palvelupohjaisen arkkitehtuurin voisi toteuttaa Sandvikin testausympäristössä. Lopulta integraatio toteutettiin työssä käsitellyllä hub-and-spoke-pohjaisella reititinarkkitehtuurilla, johon yhdistettiin REST-arkkitehtuurin mukainen ohjelmistorajapinta. Reititinarkkitehtuurin tietokantaratkaisuna käytettiin MongoDB®-oliotietokantaa.
Työn lopputuloksena saatiin teorian pohjalta tutkittua, kuinka toteuttaa hajautetun järjestelmän integraatio. Käytännön osuuden lopputuloksena saatiin toteutettua Sandvikin testausympäristön vaatimukset täyttävä hajautetun järjestelmän integraatio, joka vastasi työn teoriassa esitettyjä väittämiä. Työn aikana pystyttiin vastaamaan tutkimuskysymyksiin siitä, millä eri tavoilla voidaan toteuttaa hajautetun järjestelmän integraatio ja kuinka toteutettu järjestelmäintegraatio täyttää sille asetetut vaatimukset. In this master thesis, it was investigated in which different ways the integration of a distributed system can be implemented, one option was implemented, and it was investigated how it met the requirements set in the work. In the practical part of the work, the integration between the continuous integration service Jenkins® and the distributed Creanex® simulator testing environment was implemented for Sandvik®. Jenkins and Creanex simulators were combined into one continuous integration pipeline where unit testing in Jenkins was combined with integration and system testing using simulators. The main research questions were: what kind of design models can be used to integrate a distributed system, and how the implemented system integration meets the requirements set for it.
In the theory part of the work software development and testing with different models were discussed in general as well as with which different systems testing can be carried out. In theory, system integration design models were examined from the point of view of how well they can implement distributed system integration as well as what benefits and challenges they have compared to each other. Communication, which is necessary for system integration, was examined in theory not only from the perspective of the system architecture but also from the point of view of different communication technologies in general. The theory also discussed relational and object database structures and what benefits and challenges they have compared to each other from the perspective of a distributed system database solution.
In the practical part of the work, the integration of Sandvik's distributed testing environment was carried out based on theory. The practical section compared how a pipeline, router and service-oriented architecture could be implemented in Sandvik's testing environment. In the end, the integration was implemented with the hub-and-spoke-based router architecture discussed in the work which was combined with a software interface according to the REST architecture. The MongoDB® object database was used as the database solution for the router architecture.
As a result of the work, it was possible to study based on theory how to implement the integration of a distributed system. The result of the practical part was the implementation of a distributed system integration that met the requirements of Sandvik's testing environment which corresponded to the claims made in the theory of the work. During the work, it was possible to answer the research questions about the different ways in which the integration of a distributed system can be implemented and how the implemented system integration meets the requirements set for it.
Työn teoriaosuudessa käsiteltiin yleisesti ohjelmistokehitystä ja testausta eri malleilla sekä millä erilaisilla järjestelmillä testausta voidaan toteuttaa. Teoriassa järjestelmäintegraation suunnittelumalleja tarkasteltiin siitä näkökulmasta, kuinka hyvin niillä pystytään toteuttamaan hajautetun järjestelmän integraatio, sekä mitä hyötyjä ja haasteita niillä on toisiinsa verrattuna. Teoriassa järjestelmäintegraatiolle välttämätöntä viestintää tarkasteltiin paitsi järjestelmäarkkitehtuurin myös yleisesti eri viestintätekniikoiden näkökulmasta. Teoriassa lisäksi käsiteltiin relaatio- ja oliotietokantarakenteita sekä mitä hyötyjä ja haasteita niillä on toisiinsa verrattuna hajautetun järjestelmän tietokantaratkaisun näkökulmasta.
Työn käytännön osuudessa toteutettiin teorian pohjalta Sandvikin hajautetun testausympäristön integraatio. Käytännön osiossa vertailtiin, kuinka pipeline-, reititin- ja palvelupohjaisen arkkitehtuurin voisi toteuttaa Sandvikin testausympäristössä. Lopulta integraatio toteutettiin työssä käsitellyllä hub-and-spoke-pohjaisella reititinarkkitehtuurilla, johon yhdistettiin REST-arkkitehtuurin mukainen ohjelmistorajapinta. Reititinarkkitehtuurin tietokantaratkaisuna käytettiin MongoDB®-oliotietokantaa.
Työn lopputuloksena saatiin teorian pohjalta tutkittua, kuinka toteuttaa hajautetun järjestelmän integraatio. Käytännön osuuden lopputuloksena saatiin toteutettua Sandvikin testausympäristön vaatimukset täyttävä hajautetun järjestelmän integraatio, joka vastasi työn teoriassa esitettyjä väittämiä. Työn aikana pystyttiin vastaamaan tutkimuskysymyksiin siitä, millä eri tavoilla voidaan toteuttaa hajautetun järjestelmän integraatio ja kuinka toteutettu järjestelmäintegraatio täyttää sille asetetut vaatimukset.
In the theory part of the work software development and testing with different models were discussed in general as well as with which different systems testing can be carried out. In theory, system integration design models were examined from the point of view of how well they can implement distributed system integration as well as what benefits and challenges they have compared to each other. Communication, which is necessary for system integration, was examined in theory not only from the perspective of the system architecture but also from the point of view of different communication technologies in general. The theory also discussed relational and object database structures and what benefits and challenges they have compared to each other from the perspective of a distributed system database solution.
In the practical part of the work, the integration of Sandvik's distributed testing environment was carried out based on theory. The practical section compared how a pipeline, router and service-oriented architecture could be implemented in Sandvik's testing environment. In the end, the integration was implemented with the hub-and-spoke-based router architecture discussed in the work which was combined with a software interface according to the REST architecture. The MongoDB® object database was used as the database solution for the router architecture.
As a result of the work, it was possible to study based on theory how to implement the integration of a distributed system. The result of the practical part was the implementation of a distributed system integration that met the requirements of Sandvik's testing environment which corresponded to the claims made in the theory of the work. During the work, it was possible to answer the research questions about the different ways in which the integration of a distributed system can be implemented and how the implemented system integration meets the requirements set for it.