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...

Full description

Bibliographic Details
Main Authors: Muhammad Rashid Naeem, Tao Lin, Hamad Naeem, Farhan Ullah, Saqib Saeed
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