Recommendations for Mutation Testing as Part of a Continuous Integration Pipeline: With a focus on C++

dc.contributor.authorÖRGÅRD, JONATHAN
dc.contributor.departmentChalmers tekniska högskola / Institutionen för data och informationstekniksv
dc.contributor.examinerStrüber, Daniel
dc.contributor.supervisorGay, Gregory
dc.contributor.supervisorGomes de Oliveira Neto, Francisco
dc.date.accessioned2022-07-07T13:00:27Z
dc.date.available2022-07-07T13:00:27Z
dc.date.issued2022sv
dc.date.submitted2020
dc.description.abstractMutation testing aims to judge the quality of a test suite by evaluating the ability of the tests to detect subtle changes in the code. Altered versions of the code called mutants are generated by a mutation tool, often a subtle change based on common syntactic mistakes. Each mutant is then run against the original test suite to see if the test results change. This thesis aims to identify recommendations to mitigate the fact that mutation testing can be notoriously expensive, making it difficult to integrate as part of a continuous integration (CI) pipeline. An evaluation of existing mutation testing tools for C++ was done to better understand the functionality and limitations of the available tools. Simultaneously, a case study was conducted at Zenseact to identify suggestions on how mutation testing can best be used within CI. First, a literature review was conducted to examine observations made by other studies on the application of mutation testing in practice, and to identify techniques and practices to perform mutation testing effectively. Next, stakeholder interviews were conducted to assess the developer’s view of effective mutation testing. The result of the tool evaluation showed that existing mutation tools for C++ differ in their capabilities, and the case study result showed that there exist plenty of techniques to effectively integrate mutation testing into CI from the developers’ perspective. Based on the result, only the mutation tools Dextool and Mull were recommended for CI integration. Furthermore, guidelines were developed such as prioritizing mutation testing on essential areas of the code, performing mutation testing on old code only when there is free machine time, and that inexperienced developers should be trained to understand the mutation result better.sv
dc.identifier.coursecodeDATX05sv
dc.identifier.urihttps://hdl.handle.net/20.500.12380/305137
dc.language.isoengsv
dc.setspec.uppsokTechnology
dc.subjectcomputer sciencesv
dc.subjectengineeringsv
dc.subjectprojectsv
dc.subjectthesissv
dc.subjectmutation testingsv
dc.subjectcontinuous integrationsv
dc.subjectC++sv
dc.subjectcase studysv
dc.subjectdextoolsv
dc.subjectmullsv
dc.titleRecommendations for Mutation Testing as Part of a Continuous Integration Pipeline: With a focus on C++sv
dc.type.degreeExamensarbete för masterexamensv
dc.type.uppsokH
Ladda ner
Original bundle
Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
CSE 22-79 Örgård.pdf
Storlek:
1.6 MB
Format:
Adobe Portable Document Format
Beskrivning:
Master’s thesis in Computer Science and Engineering
License bundle
Visar 1 - 1 av 1
Hämtar...
Bild (thumbnail)
Namn:
license.txt
Storlek:
1.51 KB
Format:
Item-specific license agreed upon to submission
Beskrivning: