Commit-Aware Mutation Testing
Wei Ma,Thomas Laurent,Milos Ojdanic,Thierry Titcheu Chekam,Anthony Ventresque,Mike Papadakis +5 more
- 01 Sep 2020
- pp 394-405
TL;DR: The results demonstrate that traditional mutation has approximately 30% lower chances of revealing commit-introducing faults than commit-aware mutation testing, and indicates the need for a commit-relevant test assessment metric.
read more
Abstract: In Continuous Integration, developers want to know how well they have tested their changes. Unfortunately, in these cases, the use of mutation testing is suboptimal since mutants affect the entire set of program behaviours and not the changed ones. Thus, the extent to which mutation testing can be used to test committed changes is questionable. To deal with this issue, we define commit-relevant mutants; a set of mutants that affect the changed program behaviours and represent the commit-relevant test requirements. We identify such mutants in a controlled way, and check their relationship with traditional mutation score (score based on the entire set of mutants or on the mutants located on the commits). We conduct experiments in both C and Java, using 83 commits, 2,253,610 mutants from 25 projects. Our findings reveal that there is a relatively weak correlation (Kendall/Pearson 0.15-0.4) between the sought (commit-relevant) and traditional mutation scores, indicating the need for a commit-aware test assessment metric. Our analysis also shows that traditional mutation is far from the envisioned case as it loses approximately 50%-60% of the commit-relevant mutants when analysing 5-25 mutants. More importantly, our results demonstrate that traditional mutation has approximately 30% lower chances of revealing commit-introducing faults than commit-aware mutation testing.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Figures

TABLE II JAVA TEST SUBJECTS 
TABLE I C TEST SUBJECTS 
Fig. 1. A mutant is relevant if it impacts the behaviour of the committed code and the committed code impacts the behaviour of the mutant. 
Fig. 4. The relationship between Mutation Score and Relevant Mutation Score. 
Fig. 3. The distribution of killable, non-relevant, relevant outside the modification and relevant on the modification mutants among the studied commits. 
TABLE III Â12 . RMS WHEN AIMING AT RELEVANT, RANDOM AND MODIFICATION RELATED MUTANTS.
Citations
MuDelta: Delta-Oriented Mutation Testing at Commit Time
Wei Ma,Thierry Titcheu Chekam,Mike Papadakis,Mark Harman +3 more
- 22 May 2021
TL;DR: MuDelta as discussed by the authors uses machine learning applied on a combined scheme of graph and vector-based representations of static code features to identify commit-relevant mutants; mutants that affect and are affected by the changed program behaviours.
Mutation Testing in Evolving Systems: Studying the Relevance of Mutants to Code Evolution
TL;DR: In this article , commit-relevant mutants are identified based on the notion of higher-order mutation and the impact of one mutant on another in capturing and analyzing the implicit interactions between the changed and unchanged code parts.
On the use of commit-relevant mutants
Milos Ojdanic,Wei Ma,Thomas Laurent,Thierry Titcheu Chekam,Anthony Ventresque,Mike Papadakis +5 more
TL;DR: In this paper , commit-relevant mutants represent a small subset of all mutants, which differs from the other classes of mutants (subsuming and hard-to-kill), and is weakly correlated with the traditional mutation score (Kendall/Pearson 0.15-0.4).
Efficient Mutation Testing via Pre-Trained Language Models
Ahmed Khanfir,Renzo Degiovanni,Mike Papadakis,Yves Le Traon +3 more
TL;DR: In this paper , the authors propose using pre-trained generative language models (i.e., CodeBERT) that have the ability to produce developer-like code that operate similarly, but not exactly, as the target code.
4
References
KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs
Cristian Cadar,Daniel Dunbar,Dawson Engler +2 more
- 08 Dec 2008
TL;DR: A new symbolic execution tool, KLEE, capable of automatically generating tests that achieve high coverage on a diverse set of complex and environmentally-intensive programs, and significantly beat the coverage of the developers' own hand-written test suite is presented.
Hints on Test Data Selection: Help for the Practicing Programmer
TL;DR: In many cases tests of a program that uncover simple errors are also effective in uncovering much more complex errors, so-called coupling effect can be used to save work during the testing process.
2.2K
Regression testing minimization, selection and prioritization: a survey
Shin Yoo,Mark Harman +1 more
TL;DR: This paper surveys each area of minimization, selection and prioritization technique and discusses open problems and potential directions for future research.
1.5K
Introduction to Software Testing: List of Figures
Paul Ammann,Jeff Offutt +1 more
- 01 Jan 2008
TL;DR: The structure of the text directly reflects the pedagogical approach and incorporates the latest innovations in testing, including techniques to test modern types of software such as OO, web applications and embedded software.
1.2K
•Book
Introduction to Software Testing
Paul Ammann,Jeff Offutt +1 more
- 01 Jan 2009
TL;DR: In this paper, the authors define testing as the process of applying a few well-defined, general-purpose test criteria to a structure or model of the software, and present an innovative approach to explaining the process.