TL;DR
Cerebro is a machine learning-based method that efficiently selects the most impactful mutants in mutation testing, significantly reducing testing costs while maintaining high effectiveness across multiple programming projects.
Contribution
It introduces a novel static mutant selection approach using machine learning to identify subsuming mutants, improving cost-efficiency and test effectiveness over baseline methods.
Findings
Cerebro reduces equivalent mutants by 68% on average.
It achieves twice the mutation killing power with fewer mutants.
Cerebro requires 90% fewer test executions than baselines.
Abstract
Mutation testing research has indicated that a major part of its application cost is due to the large number of low utility mutants that it introduces. Although previous research has identified this issue, no previous study has proposed any effective solution to the problem. Thus, it remains unclear how to mutate and test a given piece of code in a best effort way, i.e., achieving a good trade-off between invested effort and test effectiveness. To achieve this, we propose Cerebro, a machine learning approach that statically selects subsuming mutants, i.e., the set of mutants that resides on the top of the subsumption hierarchy, based on the mutants' surrounding code context. We evaluate Cerebro using 48 and 10 programs written in C and Java, respectively, and demonstrate that it preserves the mutation testing benefits while limiting application cost, i.e., reduces all cost application…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
