Neural Network based Software Defect Prediction using Genetic Algorithm and Particle Swarm Optimization

In the arena of software engineering, software defects prediction is one of the most attractive research topics. Here the main task is to predict if there is any bug in the software or not. For software testing, software defect detection is important for reducing the time and resources consumed. Accurate estimate of defect software prediction process enables effective discovery and identification of the defects. Such prediction methods are important for the big scale systems, where verification specialists need to focus their attention. In this paper, we proposed a method where the features are selected using Genetic Algorithm (GA). Secondly, make cluster of the selected features using Particle Swarm Optimization (PSO) and then train the model with different Neural Network (NN) methods such as: Feedforward Neural Network (FNN), Recurrent Neural Network (RNN), Artificial Neural Network (ANN), and Deep Neural Network (DNN) and finally calculate accuracy, sensitivity, specificity, precision, negative prediction value, F1 score, and Matthews correlation coefficient. We use five different datasets from NASA promise software engineering repository for our study. From our study, we get the best accuracy result using deep neural network. Experimental consequences show that proposed strategy is a decent technique to predict the software defects.

[1]  Taghi M. Khoshgoftaar,et al.  Analyzing software measurement data with clustering techniques , 2004, IEEE Intelligent Systems.

[2]  Nagy Ramadan,et al.  Early Prediction of Software Defect using Ensemble Learning: A Comparative Study , 2018, International Journal of Computer Applications.

[3]  Mei-Hwa Chen,et al.  An empirical study on object-oriented metrics , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[4]  Tim Menzies,et al.  Data Mining Static Code Attributes to Learn Defect Predictors , 2007, IEEE Transactions on Software Engineering.

[5]  Salwa K. Abd-El-Hafiz,et al.  Clustering-based Under-sampling for Software Defect Prediction , 2018 .

[6]  Anuradha Chug,et al.  Software Defect Prediction Using Supervised Learning Algorithm and Unsupervised Learning Algorithm , 2013 .

[7]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[8]  Ayse Basar Bener,et al.  Defect prediction from static code features: current results, limitations, new approaches , 2010, Automated Software Engineering.

[9]  Xinli Yang,et al.  Deep Learning for Just-in-Time Defect Prediction , 2015, 2015 IEEE International Conference on Software Quality, Reliability and Security.

[10]  Ming Zhao,et al.  Application of multivariate analysis for software fault prediction , 1998, Software Quality Journal.

[11]  Mei-Hwa Chen,et al.  Progressive Reliability Forecasting of Service-Oriented Software , 2011, 2011 IEEE International Conference on Web Services.

[12]  Karim O. Elish,et al.  Predicting defect-prone software modules using support vector machines , 2008, J. Syst. Softw..

[13]  Song Wang,et al.  Automatically Learning Semantic Features for Defect Prediction , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[14]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[15]  Ali Selamat,et al.  A survey on software fault detection based on different prediction approaches , 2014, Vietnam Journal of Computer Science.

[16]  Iker Gondra,et al.  Applying machine learning to software fault-proneness prediction , 2008, J. Syst. Softw..

[17]  Guangchun Luo,et al.  Transfer learning for cross-company software defect prediction , 2012, Inf. Softw. Technol..

[18]  Narendra Sharma,et al.  Comparison the various clustering algorithms of weka tools , 2012 .