A test suite plays a key role in software testing. Mutation testing is a powerful approach to measure the fault-detection ability of a test suite. The mutation testing process requires a large number of mutants to be generated and executed. Hence, mutation testing is also computationally expensive. To solve this problem, predictive mutation testing builds a classification model to predict the test result of each mutant. However, the existing predictive mutation testing methods only can be used to estimate the overall mutation scores of object-oriented programs. To overcome the shortcomings of the existing methods, we propose a new method to directly predict the mutation score for each statement in process-oriented programs. Compared with the existing predictive mutation testing methods, our method uses more dynamic program execution features, which more adequately reflect dynamic dependency relationships among the statements and more accurately reflects information propagation during the execution of test cases. By comparing the prediction effects of logistic regression, artificial neural network, random forest, support vector machine, and symbolic regression, we finally decide to use a single hidden layer feedforward neural network as the predictive model to predict the statement mutation scores. In our two experiments, the mean absolute errors between the statement mutation scores predicted by the neural network and the real statement mutation scores both approximately reach 0.12.
[1]
Mark Harman,et al.
An Analysis and Survey of the Development of Mutation Testing
,
2011,
IEEE Transactions on Software Engineering.
[2]
Richard J. Lipton,et al.
Hints on Test Data Selection: Help for the Practicing Programmer
,
1978,
Computer.
[3]
Trevor Hastie,et al.
Regularization Paths for Generalized Linear Models via Coordinate Descent.
,
2010,
Journal of statistical software.
[4]
Hsuan-Tien Lin,et al.
A note on Platt’s probabilistic outputs for support vector machines
,
2007,
Machine Learning.
[5]
G. Brier.
VERIFICATION OF FORECASTS EXPRESSED IN TERMS OF PROBABILITY
,
1950
.
[6]
Phyllis G. Frankl,et al.
All-uses vs mutation testing: An experimental comparison of effectiveness
,
1997,
J. Syst. Softw..
[7]
Kurt Hornik,et al.
kernlab - An S4 Package for Kernel Methods in R
,
2004
.
[8]
Mark Harman,et al.
Predictive Mutation Testing
,
2019,
IEEE Transactions on Software Engineering.
[9]
R. Tibshirani.
Regression Shrinkage and Selection via the Lasso
,
1996
.
[10]
Chih-Jen Lin,et al.
A comparison of methods for multiclass support vector machines
,
2002,
IEEE Trans. Neural Networks.