TY - JOUR
T1 - Predictive Mutation Testing
AU - Zhang, Jie
AU - Zhang, Lingming
AU - Harman, Mark
AU - Hao, Dan
AU - Jia, Yue
AU - Zhang, Lu
N1 - Funding Information:
This work is mainly supported by the National Key Research and Development Program 2016YFB1000801, the National Natural Science Foundation of China under Grants No.
Funding Information:
61522201 and 61529201. It is also supported in part by NSF Grant No. CCF-1566589, UT Dallas faculty start-up fund, Google Faculty Research Award. During the process of this research that took place while at UCL full time, Mark Harman and Yue Jia were part funded by the EPSRC grant DAASE Dynamic Adaptive Automated Software Engineering (EP/J017515/).
Publisher Copyright:
© 1976-2012 IEEE.
PY - 2019/9/1
Y1 - 2019/9/1
N2 - Test suites play a key role in ensuring software quality. A good test suite may detect more faults than a poor-quality one. Mutation testing is a powerful methodology for evaluating the fault-detection ability of test suites. In mutation testing, a large number of mutants may be generated and need to be executed against the test suite under evaluation to check how many mutants the test suite is able to detect, as well as the kind of mutants that the current test suite fails to detect. Consequently, although highly effective, mutation testing is widely recognized to be also computationally expensive, inhibiting wider uptake. To alleviate this efficiency concern, we propose Predictive Mutation Testing (PMT): The first approach to predicting mutation testing results without executing mutants. In particular, PMT constructs a classification model, based on a series of features related to mutants and tests, and uses the model to predict whether a mutant would be killed or remain alive without executing it. PMT has been evaluated on 163 real-world projects under two application scenarios (cross-version and cross-project). The experimental results demonstrate that PMT improves the efficiency of mutation testing by up to 151.4X while incurring only a small accuracy loss. It achieves above 0.80 AUC values for the majority of projects, indicating a good tradeoff between the efficiency and effectiveness of predictive mutation testing. Also, PMT is shown to perform well on different tools and tests, be robust in the presence of imbalanced data, and have high predictability (over 60 percent confidence) when predicting the execution results of the majority of mutants.
AB - Test suites play a key role in ensuring software quality. A good test suite may detect more faults than a poor-quality one. Mutation testing is a powerful methodology for evaluating the fault-detection ability of test suites. In mutation testing, a large number of mutants may be generated and need to be executed against the test suite under evaluation to check how many mutants the test suite is able to detect, as well as the kind of mutants that the current test suite fails to detect. Consequently, although highly effective, mutation testing is widely recognized to be also computationally expensive, inhibiting wider uptake. To alleviate this efficiency concern, we propose Predictive Mutation Testing (PMT): The first approach to predicting mutation testing results without executing mutants. In particular, PMT constructs a classification model, based on a series of features related to mutants and tests, and uses the model to predict whether a mutant would be killed or remain alive without executing it. PMT has been evaluated on 163 real-world projects under two application scenarios (cross-version and cross-project). The experimental results demonstrate that PMT improves the efficiency of mutation testing by up to 151.4X while incurring only a small accuracy loss. It achieves above 0.80 AUC values for the majority of projects, indicating a good tradeoff between the efficiency and effectiveness of predictive mutation testing. Also, PMT is shown to perform well on different tools and tests, be robust in the presence of imbalanced data, and have high predictability (over 60 percent confidence) when predicting the execution results of the majority of mutants.
KW - binary classification
KW - machine learning
KW - mutation testing
KW - PMT
UR - http://www.scopus.com/inward/record.url?scp=85042870809&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85042870809&partnerID=8YFLogxK
U2 - 10.1109/TSE.2018.2809496
DO - 10.1109/TSE.2018.2809496
M3 - Article
AN - SCOPUS:85042870809
SN - 0098-5589
VL - 45
SP - 898
EP - 918
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 9
M1 - 8304576
ER -