Incorporating test automation into existing software systems: A case study of incremental and maintainable practices

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

School of Science | Master's thesis

Department

Major/Subject

Mcode

Language

en

Pages

72

Series

Abstract

The importance of automated testing has increased as organizations aim to deliver software more frequently, without compromising software quality. However, the distribution of higher- and lower-level tests, differences in test creation techniques, and the principles behind continuous integration are mostly aimed towards new development projects. Furthermore, common pitfalls, such as unclear strategies and technical debt, have been identified. This thesis explores how test automation could be introduced into an existing system, while ensuring maintainability and future extensibility. This challenge was addressed by designing and implementing a pilot for a case company. The pilot consisted of four phases: planning, tool selection, implementation, and evaluation. The pilot defined what to automate, implemented a standalone test automation system, evaluated its feasibility, and outlined directions for future improvement. The case company’s multi-version web application demanded a modular and maintainable testing approach. The pilot prioritized high-value and repetitive steps, so it translated a specification document into automated regression tests on the user interface. This meaningfully reduced manual effort. The proof-of-concept scope enabled fast validation prior to large-scale commitment. Furthermore, aligning the strategy and tool selection with the product context proved essential. While various tools were considered, Robot Framework proved the best fit. This thesis applies established concepts to an existing software environment and highlights a gap in prior research, which often focuses on new development projects. It also confirms known trade-offs, such as increased execution time and maintenance from higher-level testing. Practical recommendations include starting with high-value tests, limiting the initial scope, selecting tools that support the product context, and defining a long-term goal. The findings demonstrate that an incremental and context-aware approach is effective for introducing test automation.

Testiautomaation merkitys on kasvanut, kun organisaatiot kehittävät ohjelmistojaan yhä nopeammin — tinkimättä kuitenkaan niiden laadusta. Testauksen eri tasot, testien eri luontitekniikat sekä jatkuvan integraation periaatteet ovat kuitenkin pääosin suunnattu uusiin kehitysprojekteihin. Tämän lisäksi tyypillisiä kompastuskiviä, kuten strategian puute ja tekninen velka, on havaittu. Tämä työ tarkastelee, miten testiautomaatio voidaan ottaa käyttöön olemassa oleviin ohjelmistoihin, samalla huomioiden ylläpidettävyyttä sekä laajennettavuutta. Työ lähestyi tätä haastetta suunnittelemalla ja toteuttamalla pilotin kohdeyritykselle. Pilotti koostui suunnittelusta, testityökalun valinnasta, implementoinnista sekä arvioinnista. Pilotti määritteli mitä automatisoidaan, kehitti itsenäisen testiautomaatiokokonaisuuden, arvioi sen soveltuvuutta, sekä kartoitti jatkokehityksen suuntia. Kohdeyrityksen moniversiotu verkkosovellus edellytti modulaarista ja ylläpidettävää testiratkaisua. Pilotti keskittyi toistuviin sekä korkean hyödyn testitapauksiin. Pilotti muutti spesifikaatiodokumentin käyttöliittymätason regressiotesteksi, joka vähensi merkittävästi manuaalisen testauksen määrää. Konseptintodistuksen (engl. proof-of-concept) avulla pilotin toimivuus voitiin validoida nopeasti ja riskittömästi ennen laajamittaista käyttöönottoa. Lisäksi strategian ja työkalujen valinnan peilaaminen sovelluksen kontekstiin osoittautui keskeiseksi Robot Frameworkin valinnassa. Tämä työ soveltaa vakiintuneita testiautomaatioon liittyviä konsepteja olemassa olevaan ohjelmistoympäristöön sekä korostaa puutteita aiemmassa kirjallisuudessa, joka tyypillisesti keskittyy uusiin kehitysprojekteihin. Tämän lisäksi työ vahvistaa jo tunnettuja kompromisseja, kuten korkeampien testitasojen pidemmät suoritusajat ja suuremmat ylläpitotarpeet. Työn käytännön suosituksiin kuuluvat testiautomaation aloittaminen suurimman arvon tuottavista testeistä, laajuuden rajaaminen alkuvaiheessa, kontekstiin sopivan tuotteen valitseminen, sekä pitkän aikavälin tavoitteiden määrittely. Työ osoittaa, että vaiheittainen ja kontekstiin sopeutettu lähestymistapa mahdollistaa tehokkaan testiautomaation käyttöönoton.

Description

Supervisor

Sorva, Juha

Thesis advisor

Tuomas, Jukka

Other note

Citation