Predicting the Number of Software Faults using Deep Learning
Received: 22 December 2023 | Revised: 20 January 2024 | Accepted: 28 January 2024 | Online: 2 April 2024
Corresponding author: Wahaj Alkaberi
Abstract
The software testing phase requires considerable time, effort, and cost, particularly when there are many faults. Thus, developers focus on the evolution of Software Fault Prediction (SFP) to predict faulty units in advance, therefore, improving software quality significantly. Forecasting the number of faults in software units can efficiently direct software testing efforts. Previous studies have employed several machine learning models to determine whether a software unit is faulty. In this study, a new, simple deep neural network approach that can adapt to the type of input data was designed, utilizing Convolutional Neural Networks (CNNs) and Multi-Layer Perceptron (MLP), to predict the number of software faults. Twelve open-source software project datasets from the PROMISE repository were used for testing and validation. As data imbalance can negatively impact prediction accuracy, the new version of synthetic minority over-sampling technique (SMOTEND) was used to resolve data imbalance. In experimental results, a lower error rate was obtained for MLP, compared to CNN, reaching 0.195, indicating the accuracy of this prediction model. The proposed approach proved to be effective when compared with two of the best machine learning models in the field of prediction. The code will be available on GitHub.
Keywords:
deep learning, MLP, CNN, software testing, prediction, fault, class imbalanceDownloads
References
A. Kumar and A. Bansal, "Software Fault Proneness Prediction Using Genetic Based Machine Learning Techniques," in 4th International Conference on Internet of Things: Smart Innovation and Usages, Ghaziabad, India, Apr. 2019, pp. 1–5.
K. Punitha and B. Latha, "Validation of Medical Imaging Software Using Metaheuristic Knowledge Discovery," Journal of Medical Imaging and Health Informatics, vol. 6, no. 8, pp. 1966–1971, Dec. 2016.
C. Shyamala and S. A. Sahaaya Arul Mary, "Defect Prediction in Medical Software Using Hybrid Genetic Optimized Support Vector Machines," Journal of Medical Imaging and Health Informatics, vol. 6, no. 7, pp. 1600–1604, Nov. 2016.
J. Hryszko and L. Madeyski, "Cost Effectiveness of Software Defect Prediction in an Industrial Project," Foundations of Computing and Decision Sciences, vol. 43, no. 1, pp. 7–35, Mar. 2018.
E. Elahi, A. Ayub, and I. Hussain, "Two staged data preprocessing ensemble model for software fault prediction," in International Bhurban Conference on Applied Sciences and Technologies, Islamabad, Pakistan, Jan. 2021, pp. 506–511.
C. L. Prabha and N. Shivakumar, "Software Defect Prediction Using Machine Learning Techniques," in 4th International Conference on Trends in Electronics and Informatics, Tirunelveli, India, Jun. 2020, pp. 728–733.
O. A. Qasem and M. Akour, "Software Fault Prediction Using Deep Learning Algorithms," International Journal of Open Source Software and Processes, vol. 10, no. 4, pp. 1–19, Oct. 2019.
S. Dhankhar, H. Rastogi, and M. Kakkar, "Software fault prediction performance in software engineering," in 2nd International Conference on Computing for Sustainable Global Development, New Delhi, India, Mar. 2015, pp. 228–232.
R. Malhotra, "A systematic review of machine learning techniques for software fault prediction," Applied Soft Computing, vol. 27, pp. 504–518, Feb. 2015.
G. P. Bhandari and R. Gupta, "Machine learning based software fault prediction utilizing source code metrics," in 3rd International Conference on Computing, Communication and Security, Kathmandu, Nepal, Oct. 2018, pp. 40–45.
X. Chen, D. Zhang, Y. Zhao, Z. Cui, and C. Ni, "Software defect number prediction: Unsupervised vs supervised methods," Information and Software Technology, vol. 106, pp. 161–181, Feb. 2019.
C. Pan, M. Lu, and B. Xu, "An Empirical Study on Software Defect Prediction Using CodeBERT Model," Applied Sciences, vol. 11, no. 11, Jan. 2021, Art. no. 4793.
M. Massoudi, N. K. Jain, and P. Bansal, "Software Defect Prediction using Dimensionality Reduction and Deep Learning," in Third International Conference on Intelligent Communication Technologies and Virtual Mobile Networks, Tirunelveli, India, Feb. 2021, pp. 884–893.
S. S. Rathore and S. Kumar, "A Decision Tree Regression based Approach for the Number of Software Faults Prediction," ACM SIGSOFT Software Engineering Notes, vol. 41, no. 1, pp. 1–6, Oct. 2016.
H. Alsawalqah, H. Faris, I. Aljarah, L. Alnemer, and N. Alhindawi, "Hybrid SMOTE-Ensemble Approach for Software Defect Prediction," in 6th Computer Science On-line Conference, Prague, Czech Republic, Apr. 2017, pp. 355–366.
K. Wongpheng and P. Visutsak, "Software Defect Prediction using Convolutional Neural Network," in 35th International Technical Conference on Circuits/Systems, Computers and Communications, Nagoya, Japan, Jul. 2020, pp. 240–243.
A. Hasanpour, P. Farzi, A. Tehrani, and R. Akbari, "Software Defect Prediction Based On Deep Learning Models: Performance Study." arXiv, Apr. 02, 2020.
T. Liu, S. Fang, Y. Zhao, P. Wang, and J. Zhang, "Implementation of Training Convolutional Neural Networks." arXiv, Jun. 03, 2015.
L. B. Salah and F. Fourati, "Systems Modeling Using Deep Elman Neural Network," Engineering, Technology & Applied Science Research, vol. 9, no. 2, pp. 3881–3886, Apr. 2019.
S. Sahel, M. Alsahafi, M. Alghamdi, and T. Alsubait, "Logo Detection Using Deep Learning with Pretrained CNN Models," Engineering, Technology & Applied Science Research, vol. 11, no. 1, pp. 6724–6729, Feb. 2021.
E. E. Miandoab and F. S. Gharehchopogh, "A Novel Hybrid Algorithm for Software Cost Estimation Based on Cuckoo Optimization and K-Nearest Neighbors Algorithms," Engineering, Technology & Applied Science Research, vol. 6, no. 3, pp. 1018–1022, Jun. 2016.
L. Qiao, G. Li, D. Yu, and H. Liu, "Deep Feature Learning to Quantitative Prediction of Software Defects," in 45th Annual Computers, Software, and Applications Conference, Madrid, Spain, Jul. 2021, pp. 1401–1402.
R. Jothi, "A Comparative Study of Unsupervised Learning Algorithms for Software Fault Prediction," in Second International Conference on Intelligent Computing and Control Systems, Madurai, India, Jun. 2018, pp. 741–745.
H. Wang and T. M. Khoshgoftaar, "A Study on Software Metric Selection for Software Fault Prediction," in 18th IEEE International Conference On Machine Learning And Applications, Boca Raton, FL, USA, Dec. 2019, pp. 1045–1050.
S. S. Rathore and S. Kumar, "An empirical study of ensemble techniques for software fault prediction," Applied Intelligence, vol. 51, no. 6, pp. 3615–3644, Jun. 2021.
S. S. Rathore and S. Kumar, "An empirical study of some software fault prediction techniques for the number of faults prediction," Soft Computing, vol. 21, no. 24, pp. 7417–7434, Dec. 2017.
S. S. Rathore and S. Kuamr, "Comparative analysis of neural network and genetic programming for number of software faults prediction," in National Conference on Recent Advances in Electronics & Computer Engineering, Roorkee, India, Feb. 2015, pp. 328–332.
A. Agrawal and T. Menzies, "Is ‘better data’ better than ‘better data miners’? on the benefits of tuning SMOTE for defect prediction," in 40th International Conference on Software Engineering, Gothenburg, Sweden, Jun. 2018, pp. 1050–1061.
G. P. Bhandari and R. Gupta, "Measuring the Fault Predictability of Software using Deep Learning Techniques with Software Metrics," in 5th IEEE Uttar Pradesh Section International Conference on Electrical, Electronics and Computer Engineering, Gorakhpur, India, Nov. 2018, pp. 1–6.
I. Batool and T. A. Khan, "Software fault prediction using deep learning techniques," Software Quality Journal, vol. 31, no. 4, pp. 1241–1280, Dec. 2023.
E. Borandag, "Software Fault Prediction Using an RNN-Based Deep Learning Approach and Ensemble Machine Learning Techniques," Applied Sciences, vol. 13, no. 3, Jan. 2023, Art. no. 1639.
M. Jureczko, "Significance of Different Software Metrics in Defect Prediction," Software Engineering: An International Journal, vol. 1, no. 1, pp. 86–95, 2011.
L. Qiao, X. Li, Q. Umer, and P. Guo, "Deep learning based software defect prediction," Neurocomputing, vol. 385, pp. 100–110, Apr. 2020.
J. M. Johnson and T. M. Khoshgoftaar, "Survey on deep learning with class imbalance," Journal of Big Data, vol. 6, no. 1, Mar. 2019, Art. no. 27.
Downloads
How to Cite
License
Copyright (c) 2024 Wahaj Alkaberi, Fatmah Assiri
This work is licensed under a Creative Commons Attribution 4.0 International License.
Authors who publish with this journal agree to the following terms:
- Authors retain the copyright and grant the journal the right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) after its publication in ETASR with an acknowledgement of its initial publication in this journal.