A Deep Learning Based Model for Defect Prediction in Intra-Project Software

Testing of software ensures the supply of meaningful software and hence prediction of defects in producing high quality software has become an inevitable one. Software defect prediction's main aim is to find out various bugs present in software and focus on testing efforts. Many of existing software defect prediction frameworks are much simple, making it difficult for developers to get detailed reference information. Nowadays, many deep learning models, like the Radial Base Functional Neural Network(RBF) and the Convolutional Neural Network (CNN), are applied to features which are created automatically from deep learning models and abstract syntax trees (AS Ts) to aid in the improved performance of predicting defects. But the results generated using RBF and CNN algorithms are not able to provide much accuracy due to its restricted size of dataset and improper baseline selections. To resolve these state-of-the-art problems, we have constructed a dataset taken from various defect datasets namely the Kamei Dataset, NASA Dataset and the PROMISE Source Code (PSC) dataset. In this research, the dataset is named as Combination Defect Analysis Dataset (CDA). Then, an Enhanced Convolutional Neural Network (ECNN) model is proposed for predicting defects in Intra-Project software (IPDP) and associated results to different models. Experimental results implied that Enhanced CNN(ECNN) model is efficient compared to the other associated models, along with it outclassing the other machine learning models suggested for IPDP.

[1]  L. Madeyski,et al.  Machine learning in software defect prediction: A business-driven systematic mapping study , 2022, Information and Software Technology.

[2]  Mutasem Shabeb Alkhasawneh Software Defect Prediction through Neural Network and Feature Selections , 2022, Appl. Comput. Intell. Soft Comput..

[3]  Fahad H. Alshammari Software Defect Prediction and Analysis Using Enhanced Random Forest (extRF) Technique: A Business Process Management and Improvement Concept in IOT-Based Application Processing Environment , 2022, Mobile Information Systems.

[4]  A. Abraham,et al.  A systematic literature review on software defect prediction using artificial intelligence: Datasets, Data Validation Methods, Approaches, and Tools , 2022, Eng. Appl. Artif. Intell..

[5]  Can Wang,et al.  Software defect prediction based on nested-stacking and heterogeneous feature selection , 2022, Complex & Intelligent Systems.

[6]  L. Madeyski,et al.  How far are we from reproducible research on code smell detection? A systematic literature review , 2021, Inf. Softw. Technol..

[7]  Gorkem Giray,et al.  A Software Engineering Perspective on Engineering Machine Learning Systems: State of the Art and Challenges , 2020, J. Syst. Softw..

[8]  Yandra Arkeman,et al.  Software Defect Prediction Using Neural Network Based SMOTE , 2020, 2020 7th International Conference on Electrical Engineering, Computer Sciences and Informatics (EECSI).

[9]  T. Menzies,et al.  Revisiting process versus product metrics: a large scale analysis , 2020, Empirical Software Engineering.

[10]  Guru Prasad Bhandari,et al.  Fault Prediction in SOA-Based Systems Using Deep Learning Techniques , 2020, Int. J. Web Serv. Res..

[11]  Xuesong Li,et al.  Deep learning based software defect prediction , 2020, Neurocomputing.

[12]  Ahmad A. Saifan,et al.  Source code-based defect prediction using deep learning and transfer learning , 2019, Intell. Data Anal..

[13]  Mohammad El-Ramly,et al.  Investigating the Use of Deep Neural Networks for Software Defect Prediction , 2019, 2019 IEEE/ACS 16th International Conference on Computer Systems and Applications (AICCSA).

[14]  Tracy Hall,et al.  Automatically identifying code features for software defect prediction: Using AST N-grams , 2019, Inf. Softw. Technol..

[15]  Yan Wang,et al.  Effort-aware and just-in-time defect prediction with neural network , 2019, PloS one.

[16]  Sandeep Kumar,et al.  A study on software fault prediction techniques , 2019, Artificial Intelligence Review.

[17]  Tibor Gyimóthy,et al.  A Public Unified Bug Dataset for Java , 2018, PROMISE.

[18]  Yan Xiao,et al.  Machine translation-based bug localization technique for bridging lexical gap , 2018, Inf. Softw. Technol..

[19]  Bin Liu,et al.  Software defect prediction using stacked denoising autoencoders and two-stage ensemble learning , 2017, Inf. Softw. Technol..

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

[21]  Ruchika Malhotra,et al.  Assessment of defect prediction models using machine learning techniques for object-oriented systems , 2016, 2016 5th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions) (ICRITO).

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

[23]  Günther Palm,et al.  Sparse activity and sparse connectivity in supervised learning , 2016, J. Mach. Learn. Res..

[24]  Xiang Zhang,et al.  Character-level Convolutional Networks for Text Classification , 2015, NIPS.

[25]  Md Zahidul Islam,et al.  Software defect prediction using a cost sensitive decision forest and voting, and a potential solution to the class imbalance problem , 2015, Inf. Syst..

[26]  Geoffrey E. Hinton,et al.  Deep Learning , 2015, Nature.

[27]  Martin White,et al.  Toward Deep Learning Software Repositories , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[28]  Anh Tuan Nguyen,et al.  Graph-Based Statistical Language Model for Code , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[29]  Premkumar T. Devanbu,et al.  On the localness of software , 2014, SIGSOFT FSE.

[30]  Jin Liu,et al.  Dictionary learning based software defect prediction , 2014, ICSE.

[31]  Tim Menzies,et al.  Learning from Open-Source Projects: An Empirical Study on Defect Prediction , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

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

[33]  Gerald Penn,et al.  Applying Convolutional Neural Networks concepts to hybrid NN-HMM model for speech recognition , 2012, 2012 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP).

[34]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

[36]  Bart Baesens,et al.  Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings , 2008, IEEE Transactions on Software Engineering.

[37]  Witold Pedrycz,et al.  A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[38]  Yuming Zhou,et al.  Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults , 2006, IEEE Transactions on Software Engineering.

[39]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

[40]  Lu Lu,et al.  An Adversarial Discriminative Convolutional Neural Network for Cross-Project Defect Prediction , 2020, IEEE Access.

[41]  Jing Xu,et al.  Automatic Feature Exploration and an Application in Defect Prediction , 2019, IEEE Access.

[42]  Shane McIntosh,et al.  An Empirical Comparison of Model Validation Techniques for Defect Prediction Models , 2017, IEEE Transactions on Software Engineering.

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

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