Investigating the Use of Deep Neural Networks for Software Defect Prediction

Many software projects are shipped to customers containing defects. Defective software cost money, time, and lives. To reduce this harm, software companies allocate testing and quality assurance budgets. The enormous sizes of modern software pose challenges to traditional testing approaches due to the need for scalability. Defect prediction models have been used to direct testing efforts to probable causes of defects in the software. Early approaches for software defect prediction relied on statistical approaches to classify software modules and decide whether each module is a defect-prone module or not. Lately, many researchers used machine learning techniques to train a model that can classify software modules to defect-prone modules and not defect-prone modules. Starting from the new millennium, neural networks and deep learning won many competitions in machine learning applications. However, the use of deep learning to build a software defect prediction model was not investigated thoroughly. In this paper, we used a deep neural network to build a software defect prediction model and compared our proposed model with other machine learning algorithms like random forests, decision trees, and naive Bayesian networks. The result shows small improvement over the other learning models in most of the comparisons. These results prove the value of using deep learning for defect prediction and open the door for more experiments.

[1]  Christopher Joseph Pal,et al.  The Importance of Skip Connections in Biomedical Image Segmentation , 2016, LABELS/DLMIA@MICCAI.

[2]  T. Ravi Kumar,et al.  A Predictive Approach to Estimate Software Defects Density Using Weighted Artificial Neural Networks for the Given Software Metrics , 2019 .

[3]  S. Sitharama Iyengar,et al.  Classification of heart rate data using artificial neural network and fuzzy equivalence relation , 2003, Pattern Recognit..

[4]  James M. Hogan,et al.  Predicting Fault-Prone Software Modules with Rank Sum Classification , 2013, 2013 22nd Australian Software Engineering Conference.

[5]  Ruchika Malhotra,et al.  A systematic review of machine learning techniques for software fault prediction , 2015, Appl. Soft Comput..

[6]  Xiao Liu,et al.  An empirical study on software defect prediction with a simplified metric set , 2014, Inf. Softw. Technol..

[7]  Banu Diri,et al.  Investigating the effect of dataset size, metrics sets, and feature selection techniques on software fault prediction problem , 2009, Inf. Sci..

[8]  Geoffrey E. Hinton,et al.  Rectified Linear Units Improve Restricted Boltzmann Machines , 2010, ICML.

[9]  Bojan Cukic,et al.  Predicting fault prone modules by the Dempster-Shafer belief networks , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[10]  Jürgen Schmidhuber,et al.  Deep learning in neural networks: An overview , 2014, Neural Networks.

[11]  Olcay Taner Yildiz,et al.  Software defect prediction using Bayesian networks , 2012, Empirical Software Engineering.

[12]  Claes Wohlin,et al.  Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review , 2013, Empirical Software Engineering.

[13]  Florin Gorunescu,et al.  Data Mining - Concepts, Models and Techniques , 2011, Intelligent Systems Reference Library.

[14]  Jimmy Ba,et al.  Adam: A Method for Stochastic Optimization , 2014, ICLR.

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

[16]  Bart Baesens,et al.  Toward Comprehensible Software Fault Prediction Models Using Bayesian Network Classifiers , 2013, IEEE Transactions on Software Engineering.

[17]  Anju Saha,et al.  Open Issues in Software Defect Prediction , 2015 .

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

[19]  Ying Zou,et al.  Cross-Project Defect Prediction Using a Connectivity-Based Unsupervised Classifier , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[20]  Rodrigo C. Barros,et al.  A meta-learning framework for algorithm recommendation in software fault prediction , 2016, SAC.

[21]  Edward B. Allen,et al.  Software Defect Prediction Using Exception Handling Call Graphs: A Case Study , 2016, 2016 IEEE 17th International Symposium on High Assurance Systems Engineering (HASE).

[22]  Arvinder Kaur,et al.  Prediction of Fault-Prone Software Modules using Statistical and Machine Learning Methods , 2010 .

[23]  Jian Li,et al.  Software Defect Prediction via Convolutional Neural Network , 2017, 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[24]  Yavuz Koroglu,et al.  Defect Prediction on a Legacy Industrial Software: A Case Study on Software with Few Defects , 2016, 2016 IEEE/ACM 4th International Workshop on Conducting Empirical Studies in Industry (CESI).

[25]  Rubén Fuentes-Fernández,et al.  An Automated Defect Prediction Framework using Genetic Algorithms: A Validation of Empirical Studies , 2016 .

[26]  Geoffrey E. Hinton,et al.  ImageNet classification with deep convolutional neural networks , 2012, Commun. ACM.

[27]  Shahid Hussain Threshold analysis of design metrics to detect design flaws: student research abstract , 2016, SAC.

[28]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..