Testausautomatiikka pilvipohjaisessa toiminnanohjausjärjestelmässä
Kyrkkö, Onni (2024)
Diplomityö
Kyrkkö, Onni
2024
School of Engineering Science, Tuotantotalous
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2024060443736
https://urn.fi/URN:NBN:fi-fe2024060443736
Tiivistelmä
Useat yritykset ovat viimeisten vuosien aikana siirtyneet hankkimaan liiketoiminnan kannalta merkitykselliset ohjelmistonsa Software as a Service (SaaS) -mallilla. SaaS-mallissa järjestelmän toimittaja tarjoaa sovellukseen jatkuvia päivityksiä, jotka voivat sisältää uusia ominaisuuksia tai järjestelmävirheiden korjauksia. Näiden versiopäivitysten laatu tulee aina regressiotestata asiakkaan omassa ympäristössä. Testaustyötä on mahdollista tehostaa hyödyntämällä manuaalisen työn tukena automatiikkaa. Tämän työn tavoitteena oli toteuttaa kohdeyrityksen pilvipohjaisen toiminnanohjausjärjestelmän versiopäivitysten regressiotestaukseen testausautomatiikka. Tavoitteena oli toteuttaa automatiikan tekninen toteutus sekä tutkia automatiikan hyödyntämistä osana versiopäivityksen testausprosessia.
Tutkimus koostui teoreettisesta sekä empiirisestä osuudesta. Kirjallisuuskatsauksena toteutettu teoriaosuus tutki pilvilaskentaa, SaaS-mallia, pilvipohjaisia toiminnanohjausjärjestelmiä, ohjelmistotestausta sekä testausautomatiikkaa. Konstruktiivisena tutkimuksena toteutetun empiirisen osuuden aineisto kerättiin pääosin kohdeyrityksen asiantuntijoiden kanssa toteutetuista määrittely- ja kehitystyöpajoista.
Tutkimuksessa pääosin avoimen lähdekoodin työkaluja hyödyntämällä toteutettiin testausautomatiikka kohdeyrityksen versiopäivitysprosessin tueksi. Arkkitehtuurin pohjana käytettiin geneerisen testiautomaatioarkkitehtuurin mallia ja 35 kappaletta olemassa olevan regressiotestitapauspaketin 80 testitapauksesta automatisoitiin. Automaation havaittiin edistävän yleiskuvan luomista järjestelmän uuden version laadusta, testaustyön nopeutta, testauksen kattavuutta ja asiantuntijoiden ajankäyttöä. Haasteiksi automaation käytössä osana versiopäivitysprosessia havaittiin automaation pitkä suoritusaika, joka esti automaatiokehittäjän päätelaitteen käytön ajon aikana, luottamuksen puute automaatioon, satunnaiset virheet ja testiympäristön tuoreistuksen automaatiolle aiheuttamat ongelmat. In recent years, many companies have transitioned to acquiring their business-critical software through the Software as a Service (SaaS) model. In the SaaS model, the system provider offers continuous updates to the application, which may include new features or bug fixes. The quality of these version updates must always be regression tested in the customer's own environment. The testing process can be made more efficient by utilizing automation to support manual work. The goal of this project was to implement test automation for the regression testing of version updates in the target company's cloud-based enterprise resource planning (ERP) system. The objective was to carry out the technical implementation of the automation and to study the use of automation as part of the target company’s version update process.
The project consisted of theoretical and empirical parts. The theoretical part that was carried out as a literature review, examined cloud computing, the SaaS model, cloud-based ERP systems, software testing, and test automation. The empirical was conducted as constructive research and the data was mainly collected from definition and development workshops conducted with the target company's experts.
Using primarily open-source tools, test automation was implemented to support the target company's version update process. A generic test automation architecture model was used as the basis for the architecture, and 35 of the 80 existing regression test cases were automated. Automation was found to contribute to an overall view of the quality of the system's new version, the efficiency of testing work, the coverage of testing, and the efficient use of experts' time. Challenges in using automation as part of the version update process included the long execution time of automation, which prevented the use of the developer's device during the run, a lack of trust in automation, random errors, and problems caused by refreshing the test environment for automation.
Tutkimus koostui teoreettisesta sekä empiirisestä osuudesta. Kirjallisuuskatsauksena toteutettu teoriaosuus tutki pilvilaskentaa, SaaS-mallia, pilvipohjaisia toiminnanohjausjärjestelmiä, ohjelmistotestausta sekä testausautomatiikkaa. Konstruktiivisena tutkimuksena toteutetun empiirisen osuuden aineisto kerättiin pääosin kohdeyrityksen asiantuntijoiden kanssa toteutetuista määrittely- ja kehitystyöpajoista.
Tutkimuksessa pääosin avoimen lähdekoodin työkaluja hyödyntämällä toteutettiin testausautomatiikka kohdeyrityksen versiopäivitysprosessin tueksi. Arkkitehtuurin pohjana käytettiin geneerisen testiautomaatioarkkitehtuurin mallia ja 35 kappaletta olemassa olevan regressiotestitapauspaketin 80 testitapauksesta automatisoitiin. Automaation havaittiin edistävän yleiskuvan luomista järjestelmän uuden version laadusta, testaustyön nopeutta, testauksen kattavuutta ja asiantuntijoiden ajankäyttöä. Haasteiksi automaation käytössä osana versiopäivitysprosessia havaittiin automaation pitkä suoritusaika, joka esti automaatiokehittäjän päätelaitteen käytön ajon aikana, luottamuksen puute automaatioon, satunnaiset virheet ja testiympäristön tuoreistuksen automaatiolle aiheuttamat ongelmat.
The project consisted of theoretical and empirical parts. The theoretical part that was carried out as a literature review, examined cloud computing, the SaaS model, cloud-based ERP systems, software testing, and test automation. The empirical was conducted as constructive research and the data was mainly collected from definition and development workshops conducted with the target company's experts.
Using primarily open-source tools, test automation was implemented to support the target company's version update process. A generic test automation architecture model was used as the basis for the architecture, and 35 of the 80 existing regression test cases were automated. Automation was found to contribute to an overall view of the quality of the system's new version, the efficiency of testing work, the coverage of testing, and the efficient use of experts' time. Challenges in using automation as part of the version update process included the long execution time of automation, which prevented the use of the developer's device during the run, a lack of trust in automation, random errors, and problems caused by refreshing the test environment for automation.
