Assessing Mutation Testing in Software Development: Industry Perspectives and Practical Applications
2024 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE credits
Student thesisAlternative title
Utvärdering av Mutationstestning inom Mjukvaruutveckling : Perspektiv från Industrin och Praktisk Implementering (Swedish)
Abstract [en]
Mutation testing is a software testing technique that evaluates the effectiveness of test suites by introducing artificial faults, or mutants, into the code and assessing the test suite’s ability to detect them. This is a very promising technique that helps to detect weaknesses in test coverage that traditional testing methods might miss, thereby enhancing software quality and robustness. Despite its potential, mutation testing’s adoption within the industry has been limited due to reasons such as computational demands and inexperience in an industrial setting. This research addresses this gap by exploring the perceptions and experiences of industry professionals through interviews and by conducting practical experiments on multiple versions of open-source projects. The aim is to understand how mutation testing can be effectively integrated into a software development process and identify the benefits and challenges associated with it. Using a combination of qualitative and quantitative methods, this study shows that mutation testing is primarily viewed as a feedback tool rather than a definitive quality metric, where surviving mutants provide the most actionable insights. It is arguably especially beneficial for critical systems and software with a lot of logic, where its ability to detect robustness issues is very valuable and effective. While early implementation of mutation testing supports a proactive approach with early fault detection and improved test suite development, several practitioners find the greatest value when the codebase and the test suite have reached a higher maturity, allowing for a more thorough and meaningful evaluation. However, notable challenges such as the time consumption and the complexity of setting up and analyzing results were also identified.
Abstract [sv]
Mutationstestning är en mjukvarutestningsteknik som utvärderar effektivite- ten av testsviter genom att introducera artificiella fel, så kallade mutanter, i koden och bedöma testsvitens förmåga att upptäcka dem. Det är en mycket lovande teknik som hjälper till att upptäcka svagheter i testtäckningen som traditionella testmetoder kan missa, vilket därav också förbättrar kvaliteten och robustheten på mjukvaran. Trots dess potential har mutationstestningens anpassning inom industrin varit begränsad på grund av faktorer som höga beräkningskostnader och brist på erfarenhet inom industrin. Det här arbetet avser att fylla denna lucka genom att utforska uppfattningar och erfarenheter från erfarna ingenjörer ute i indistrin genom intervjuer samt genom praktiska experiment på flera versioner av open-source projekt. Syftet är att förstå hur mutationstestning effektivt kan integreras i en mjukvaruutvecklingsprocess och identifiera de fördelar och utmaningar som är förknippade med den. Med en kombination av kvalitativa och kvantitativa metoder visar denna studie att mutationstestning främst ses som ett feedbackverktyg snarare än ett definitivt kvalitetsmått, där överlevande mutanter ger de mest värdefulla insikterna. Det finns indikationer på att vara särskilt fördelaktigt för kritiska system och mjukvara med mycket logik, där dess förmåga att upptäcka robusthetsproblem är mycket värdefull och effektiv. Medan tidig implementering av mutationstestning stödjer en proaktiv metod där tidig felsökning och förbättrad testsvit utvecklas, utger flera ingenjörer att det största värdet ges när kodbasen och testsviten har nått en högre mognad, vilket möjliggör en grundligare och mer meningsfull utvärdering. Betydande utmaningar identifierades även såsom tiden mutationstestning kräver, komplexiteten i att sätta upp och analysera resultat och en generell okunskap inom industrin.
Place, publisher, year, edition, pages
2024. , p. 97
Series
TRITA-EECS-EX ; 2024:736
Keywords [en]
Computer Science, Software Engineering, Mutation Testing, Quality Assur- ance, Dextool
Keywords [sv]
Datavetenskap, Mjukvaruteknik, Mutationstestning, Kvalitetssäkring, Dex- tool
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-360093OAI: oai:DiVA.org:kth-360093DiVA, id: diva2:1938344
External cooperation
Saab AB
Supervisors
Examiners
2025-03-042025-02-182025-03-04Bibliographically approved