Scalable Mutation Testing Using Predictive Analysis of Deep Learning Model
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 pro...
Main Authors: | , , , , |
---|---|
Format: | Article |
Language: | English |
Published: |
IEEE
2019-01-01
|
Series: | IEEE Access |
Subjects: | |
Online Access: | https://ieeexplore.ieee.org/document/8886413/ |
id |
doaj-1e02495efcc74bf1a425209e15c4101f |
---|---|
record_format |
Article |
spelling |
doaj-1e02495efcc74bf1a425209e15c4101f2021-03-30T00:20:13ZengIEEEIEEE Access2169-35362019-01-01715826415828310.1109/ACCESS.2019.29501718886413Scalable Mutation Testing Using Predictive Analysis of Deep Learning ModelMuhammad Rashid Naeem0https://orcid.org/0000-0003-2341-0443Tao Lin1Hamad Naeem2Farhan Ullah3Saqib Saeed4College of Computer Science, Sichuan University, Chengdu, ChinaCollege of Computer Science, Sichuan University, Chengdu, ChinaCollege of Computer Science, Sichuan University, Chengdu, ChinaCollege of Computer Science, Sichuan University, Chengdu, ChinaDepartment of Computer Information Systems, College of Computer Science and Information Technology, Imam Abdulrahman Bin Faisal University, Dammam, Saudi ArabiaSoftware 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.https://ieeexplore.ieee.org/document/8886413/Scalable mutation testingstatic analysisdeep learningbinary classification |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Muhammad Rashid Naeem Tao Lin Hamad Naeem Farhan Ullah Saqib Saeed |
spellingShingle |
Muhammad Rashid Naeem Tao Lin Hamad Naeem Farhan Ullah Saqib Saeed Scalable Mutation Testing Using Predictive Analysis of Deep Learning Model IEEE Access Scalable mutation testing static analysis deep learning binary classification |
author_facet |
Muhammad Rashid Naeem Tao Lin Hamad Naeem Farhan Ullah Saqib Saeed |
author_sort |
Muhammad Rashid Naeem |
title |
Scalable Mutation Testing Using Predictive Analysis of Deep Learning Model |
title_short |
Scalable Mutation Testing Using Predictive Analysis of Deep Learning Model |
title_full |
Scalable Mutation Testing Using Predictive Analysis of Deep Learning Model |
title_fullStr |
Scalable Mutation Testing Using Predictive Analysis of Deep Learning Model |
title_full_unstemmed |
Scalable Mutation Testing Using Predictive Analysis of Deep Learning Model |
title_sort |
scalable mutation testing using predictive analysis of deep learning model |
publisher |
IEEE |
series |
IEEE Access |
issn |
2169-3536 |
publishDate |
2019-01-01 |
description |
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. |
topic |
Scalable mutation testing static analysis deep learning binary classification |
url |
https://ieeexplore.ieee.org/document/8886413/ |
work_keys_str_mv |
AT muhammadrashidnaeem scalablemutationtestingusingpredictiveanalysisofdeeplearningmodel AT taolin scalablemutationtestingusingpredictiveanalysisofdeeplearningmodel AT hamadnaeem scalablemutationtestingusingpredictiveanalysisofdeeplearningmodel AT farhanullah scalablemutationtestingusingpredictiveanalysisofdeeplearningmodel AT saqibsaeed scalablemutationtestingusingpredictiveanalysisofdeeplearningmodel |
_version_ |
1724188414676303872 |