Abstract
Software testing plays a crucial role in ensuring the quality of software systems. Mutation testing is designed to measure the adequacy of test suites by detecting artificially induced software faults. Despite their potential, the expensive cost and the scalability of mutation testing with large programs is a big obstacle in its practical use. The selective mutation has been widely investigated and considered to be an effective approach to reduce the cost of mutation testing. In the case of large programs where source code has hundreds of classes and more than 10 KLOC lines of code, the selective mutation can still generate thousands of mutants. Executing each mutant against the test suite is cost-intensive in terms of robustness, resource usage, and computational cost. In this paper, we introduce a new approach to extract features from mutant programs based on mutant killing conditions, i.e. reachability, necessity and sufficiency along with mutant significance and test suite metrics to extract features from mutant programs. A deep learning Keras model is proposed to predict killed and alive mutants from each program. First, the features are extracted using the Eclipse JDT library and program dependency analysis. Second, preprocessing techniques such as Principal Component Analysis and Synthetic Minority Oversampling are used to reduce the high dimensionality of data and to overcome the imbalanced class problem respectively. Lastly, the deep learning model is optimized using fine-tune parameters such as dropout and dense layers, activation function, error and loss rate respectively. The proposed work is analyzed on five opensource programs from GitHub repository consisting of thousands of classes and LOC. The experimental results are appreciable in terms of effectiveness and scalable mutation testing with a slight loss of accuracy.
Highlights
Software testing plays a key role in ensuring the quality of a software system or program under test
We investigate the choices of other deep learning models such as Recurrent Neural Network (RNN) and Multi-Layer Perceptron (MLP) to analyze their scalability with proposed features extraction approaches
ADEQUACY METRICS FOR MODEL EVALUATION We assessed the prediction of deep learning classification results using True Positive (TS), True Negative (TN), False Positive (FP) and False Negative (FN) variables respectively
Summary
Software testing plays a key role in ensuring the quality of a software system or program under test. A significant number of faulty programs i.e. mutants are generated from the original program using mutant operators. These faulty programs are executed against the test suites. The running cost of a test suite along with 23,847 mutants can be extremely expensive Various techniques such as weak mutation, high order mutation and selective mutation are introduced by the researchers to reduce the cost of mutation testing. To address the scalability problem, we propose a new approach for mutation testing which uses a TensorFlow based deep learning Keras model to predict mutants, i.e. killed or alive without any need for test suite execution. The features are extracted based on mutant killing conditions of the RIP model which states the circumstances under which a mutant should be killed
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.