The effectiveness of different test case prioritization techniques in continuous integration
Bomström, Toni (2021-04-09)
Bomström, Toni
T. Bomström
09.04.2021
© 2021 Toni Bomström. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-202104127525
https://urn.fi/URN:NBN:fi:oulu-202104127525
Tiivistelmä
Regression testing is often performed in software development to increase the quality of the software. Especially continuous integration (CI) environments face challenges related to the efficiency of the regression testing feedback loop. It is important to get feedback about the changes made as soon as possible so that work can be started on fixing the potential issues caused by the changes. Regression testing is optimized by prioritizing test cases into an order that increases the early fault detection rate. However, different test case prioritization (TCP) approaches and techniques set different requirements, such as access to source code, for the environment. As the CI environments set high time and resource constraints for the TCP, not all techniques are applicable and some care should be put into selecting a suitable TCP technique. This thesis consists of a literature review that aims to consider CI environments’s special requirements, map out the most common TCP techniques as well as evaluate their applicability to these CI environments. Based on the benefits and drawbacks noted for the approaches, it seems likely that history-based TCP approaches could be the best fit for these resource intensive CI environments. Regressiotestausta käytetään ohjelmistokehityksessä ohjelmiston laadun parantamiseen. Regressiotestauksen palautesilmukan (engl. feedback loop) tehokkuus tuottaa haasteita varsinkin jatkuvan integraation kehitysympäristöissä. On tärkeää, että kehittäjät saavat palautetta tekemiensä muutosten mahdollisista epätoivotuista vaikutuksista, jotta tarvittavat korjaustyöt voidaan aloittaa mahdollisimman pikaisesti. Regressiotestausta voidaan optimoida laittamalla testitapaukset sellaiseen tärkeysjärjestykseen, joka kasvattaa aikaista virheiden havaitsemistahtia (engl. early fault detection rate). Eri priorisointitekniikat asettavat kuitenkin erilaisia vaatimuksia suoritusympäristölle. Esimerkiksi jotkin tekniikat tarvitsevat näkyvyyden lähdekoodiin. Testitapausten priorisointitekniikan valinta kannattaa tehdä huolella jatkuvan integraation kehitysympäristöissä, sillä kyseisillä ympäristöillä on korkeita aika- ja resurssienkäyttövaatimuksia. Tämä tutkielma koostuu kirjallisuuskatsauksesta, jonka tarkoituksena on tarkastella jatkuvan integraation kehitysympäristöjen erikoisvaatimuksia, kartoittaa yleisimmät testitapausten priorisointitekniikat sekä arvioida näiden tekniikoiden soveltuvuutta jatkuvan integraation kehitysympäristöihin. Tunnistettujen testitapausten priorisoinnin lähestymistapojen etujen ja haittojen perusteella vaikuttaisi todennäköiseltä, että historiapohjaiset lähestymistavat voisivat soveltua parhaiten jatkuvan integraation resurssi-intensiivisiin kehitysympäristöihin.
Kokoelmat
- Avoin saatavuus [34186]