Cerebro: Static Subsuming Mutant Selection

12/28/2021
by   Aayush Garg, et al.
0

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 factors such as equivalent mutants, mutant executions, and the mutants requiring analysis. We demonstrate that Cerebro has strong inter-project prediction ability, which is significantly higher than two baseline methods, i.e., supervised learning on features proposed by state-of-the-art, and random mutant selection. More importantly, our results show that Cerebro's selected mutants lead to strong tests that are respectively capable of killing 2 times higher than the number of subsuming mutants killed by the baselines when selecting the same number of mutants. At the same time, Cerebro reduces the cost-related factors, as it selects, on average, 68 test executions than the baselines.

READ FULL TEXT

page 20

page 21

research
01/28/2023

Assertion Inferring Mutants

Specification inference techniques aim at (automatically) inferring a se...
research
04/22/2021

Predictive Mutation Analysis via Natural Language Channel in Source Code

Mutation analysis can provide valuable insights into both System Under T...
research
03/21/2018

Selecting Fault Revealing Mutants

Mutant selection refers to the problem of choosing, among a large number...
research
03/12/2021

Sentinel: A Hyper-Heuristic for the Generation of Mutant Reduction Strategies

Mutation testing is an effective approach to evaluate and strengthen sof...
research
05/23/2020

The Threat to the Validity of Predictive Mutation Testing: The Impact of Uncovered Mutants

Predictive Mutation Testing (PMT) is a technique to predict whether a mu...
research
12/29/2021

Mutation Testing in Evolving Systems: Studying the relevance of mutants to code evolution

When software evolves, opportunities for introducing faults appear. Ther...
research
06/15/2023

MuRS: Mutant Ranking and Suppression using Identifier Templates

Diff-based mutation testing is a mutation testing approach that only mut...

Please sign up or login with your details

Forgot password? Click here to reset