The Influence of Deep Learning Algorithms Factors in Software Fault Prediction

The discovery of software faults at early stages plays an important role in improving software quality; reduce the costs, time, and effort that should be spent on software development. Machine learning (ML) have been widely used in the software faults prediction (SFP), ML algorithms provide varying results in terms of predicting software fault. Deep learning achieves remarkable performance in various areas such as computer vision, natural language processing, speech recognition, and other fields. In this study, two deep learning algorithms are studied, Multi-layer perceptron’s (MLPs) and Convolutional Neural Network (CNN) to address the factors that might have an influence on the performance of both algorithms. The experiment results show how modifying parameters is directly affecting the resulting improvement, these parameters are manipulated until the optimal number for each of them is reached. Moreover, the experiments show that the effect of modifying parameters had an important role in prediction performance, which reached a high rate in comparison with the traditional ML algorithm. To validate our assumptions, the experiments are conducted on four common NASA datasets. The result shows how the addressed factors might increase or decrease the fault detection rate measurement. The improvement rate was as follows up to 43.5% for PC1, 8% for KC1, 18% for KC2 and 76.5% for CM1.

[1]  Ebru Akcapinar Sezer,et al.  Iterative software fault prediction with a hybrid approach , 2016, Appl. Soft Comput..

[2]  Xue Lige,et al.  Road Machinery Fault Prediction Based on Big Data and Machine Learning , 2019, 2019 5th International Conference on Control, Automation and Robotics (ICCAR).

[3]  Iris Snuverink Deep Learning for Pixelwise Classification of Hyperspectral Images: A generalizing model for a fixed scene subject to temporally changing weather, lighting and seasonal conditions , 2017 .

[4]  Rakesh Kumar,et al.  Software Bug Prediction System Using Neural Network , 2016 .

[5]  Guigang Zhang,et al.  Deep Learning , 2016, Int. J. Semantic Comput..

[6]  Nitish Srivastava,et al.  Dropout: a simple way to prevent neural networks from overfitting , 2014, J. Mach. Learn. Res..

[7]  Katerina Goseva-Popstojanova,et al.  Software Fault Proneness Prediction with Group Lasso Regression: On Factors that Affect Classification Performance , 2019, 2019 IEEE 43rd Annual Computer Software and Applications Conference (COMPSAC).

[8]  Arashdeep Kaur,et al.  A clustering algorithm for software fault prediction , 2010, 2010 International Conference on Computer and Communication Technology (ICCCT).

[9]  Euyseok Hong,et al.  Software Fault Prediction Model using Clustering Algorithms Determining the Number of Clusters Automatically , 2014 .

[10]  Romi Satria Wahono,et al.  Genetic Feature Selection for Software Defect Prediction , 2014 .

[11]  Sandeep Kumar,et al.  A Decision Tree Regression based Approach for the Number of Software Faults Prediction , 2016, ACM SIGSOFT Softw. Eng. Notes.

[12]  Chin-Yu Huang,et al.  Neural-network-based approaches for software reliability estimation using dynamic weighted combinational models , 2007, J. Syst. Softw..

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

[14]  Nitish Srivastava,et al.  Improving Neural Networks with Dropout , 2013 .

[15]  Yu-Dong Yao,et al.  Modulation classification using convolutional Neural Network based deep learning model , 2017, 2017 26th Wireless and Optical Communication Conference (WOCC).

[16]  Mohammed Akour,et al.  The effectiveness of using deep learning algorithms in predicting students achievements , 2020, Indonesian Journal of Electrical Engineering and Computer Science.

[17]  Abeer Alsadoon,et al.  A novel modified undersampling (MUS) technique for software defect prediction , 2019, Comput. Intell..

[18]  Michael Garland,et al.  AdaBatch: Adaptive Batch Sizes for Training Deep Neural Networks , 2017, ArXiv.

[19]  Tim Menzies,et al.  The \{PROMISE\} Repository of Software Engineering Databases. , 2005 .

[20]  Ankit Pahal,et al.  A Hybrid Approach for Software Fault Prediction Using Artificial Neural Network and Simplified Swarm Optimization , 2017 .

[21]  Fatih Yücalar,et al.  Majority vote feature selection algorithm in software fault prediction , 2019, Comput. Sci. Inf. Syst..

[22]  Aditya K. Ghose,et al.  A deep tree-based model for software defect prediction , 2018, ArXiv.

[23]  Syed Ismail Shah,et al.  Impact of Varying Neurons and Hidden Layers in Neural Network Architecture for a Time Frequency Application , 2006, 2006 IEEE International Multitopic Conference.

[24]  S. Kanmani,et al.  Object-oriented software fault prediction using neural networks , 2007, Inf. Softw. Technol..

[25]  Claudio Moraga,et al.  The Influence of the Sigmoid Function Parameters on the Speed of Backpropagation Learning , 1995, IWANN.

[26]  Farnoush Farhadi,et al.  Learning Activation Functions in Deep Neural Networks , 2017 .

[27]  Debolina Ghosh,et al.  A Novel Approach of Software Fault Prediction Using Deep Learning Technique , 2020 .

[28]  Shuo Yang,et al.  An ensemble classification algorithm for convolutional neural network based on AdaBoost , 2017, 2017 IEEE/ACIS 16th International Conference on Computer and Information Science (ICIS).

[29]  A. V. Olgac,et al.  Performance Analysis of Various Activation Functions in Generalized MLP Architectures of Neural Networks , 2011 .

[30]  Korra Sathya Babu,et al.  Software Defect Prediction Based on Classification Rule Mining , 2013 .

[31]  Taghi M. Khoshgoftaar,et al.  Metric Selection for Software Defect Prediction , 2011, Int. J. Softw. Eng. Knowl. Eng..

[32]  Cong Jin,et al.  Artificial neural network-based metric selection for software fault-prone prediction model , 2012, IET Softw..

[33]  Mohammed Akour The Effectiveness of Using Deep Learning Algorithms in Predicting Daily Activities , 2019 .

[34]  C. Jin,et al.  Software reliability prediction based on support vector regression using a hybrid genetic algorithm and simulated annealing algorithm , 2011, IET Softw..

[35]  Quoc V. Le,et al.  Swish: a Self-Gated Activation Function , 2017, 1710.05941.

[36]  Berin Martini,et al.  Hardware accelerated convolutional neural networks for synthetic vision systems , 2010, Proceedings of 2010 IEEE International Symposium on Circuits and Systems.

[37]  Pavlo M. Radiuk,et al.  Impact of Training Set Batch Size on the Performance of Convolutional Neural Networks for Diverse Datasets , 2017, Information Technology and Management Science.

[38]  Sandeep Paul,et al.  A review on advances in deep learning , 2015, 2015 IEEE Workshop on Computational Intelligence: Theories, Applications and Future Directions (WCI).

[39]  Xiaoqin Zeng,et al.  A Review of Deep Learning Research , 2019, KSII Trans. Internet Inf. Syst..

[40]  Minh Le Nguyen,et al.  Convolutional Neural Networks over Control Flow Graphs for Software Defect Prediction , 2017, 2017 IEEE 29th International Conference on Tools with Artificial Intelligence (ICTAI).