A Novel Convolutional Neural Network Model to Predict Software Defects
Kumar Rajnish, Vandana Bhattacharjee, Mansi Gupta · 2022
Machine learning (ML) is becoming increasingly important as a research tool due to its various frameworks and learning approaches. With the ever-increasing scale of software, reliability has become a crucial issue and software defect prediction is utilized to assist developers in finding potential defect and allocating their testing efforts. Traditional methods of software defect prediction mainly focus on designing static code metrics which are fed into ML classifiers to predict defects in the code. Even with the same ML techniques, many researchers apply statistical approaches to classify software modules and decide whether each module is defect prone or not and, accordingly, train their model. Deep neural network (DNN) and convolutional neural network (CNN) models built by the appropriate design decisions are crucial to obtain the desired classifier performance. This is especially significant when predicting fault proneness of software modules. When correctly identified, this could help in reducing the testing cost by directing the efforts more toward the modules identified to be fault prone. This paper proposed a N ovel CNN (NCNN) model to predict software defects. The framework used is Python Programming Language with Keras and TensorFlow. A comparative analysis with ML algorithms [such as Random Forest (RF), Decision Trees (DT), and Naïve Bayes (NB)] and DNN model in terms of F-measure (known as F1-score), recall, precision, and accuracy has been presented from four NASA system data sets (KC1, PC1, PC2, and KC3) selected from PROMISE repository. The experimental results indicated that NCNN model was comparable to the existing classifiers and outperformed them in most of the experiments.