journal article·2023-01-27Open access

Software Fault Prediction Using an RNN-Based Deep Learning Approach and Ensemble Machine Learning Techniques

Emin Borandag

Applied Sciences· Volume 13· Issue 3

Abstract

Alongside the modern software development life cycle approaches, software testing has gained more importance and has become an area researched actively within the software engineering discipline. In this study, machine learning and deep learning-related software fault predictions were made through a data set named SFP XP-TDD, which was created using three different developed software projects. A data set of five different classifiers widely used in the literature and their Rotation Forest classifier ensemble versions were trained and tested using this data set. Numerous publications in the literature discussed software fault predictions through ML algorithms addressing solutions to different problems. Some of these articles indicated the usage of feature selection algorithms to improve classification performance, while others reported operating ensemble machine learning algorithms for software fault predictions. Besides, a detailed literature review revealed that there were few studies involving software fault prediction with DL algorithms due to the small sample sizes in the data sets and the low success rates in the tests performed on these datasets. As a result, the major contribution of this research was to statistically demonstrate that DL algorithms outperformed ML algorithms in data sets with large sample values via employing three separate software fault prediction datasets. The experimental outcomes of a model that includes a layer of recurrent neural networks (RNNs) were enclosed within this study. Alongside the aforementioned and generated data sets, the study also utilized the Eclipse and Apache Active MQ data sets in to test the effectiveness of the proposed deep learning method.
Source: crossref · Quality: baseline

Research context

OpenAlex topics: Software Engineering Research · Software Reliability and Analysis Research · Software System Performance and Reliability

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

Department of Software Engineering, Hasan Ferdi Turgutlu Technology Faculty, Manisa Celal Bayar University, Manisa 45400, Turkey

References (52)

Show source-provided references
1. Hughes, B., and Cotterell, M. (2009). Software Project Management, McGraw-Hill Education. [5th ed.].
2. Çatal, Ç. (2012). Software Engineering Methods-Advanced Topics, Papatya Publishing.
3. Schach, S.R. (2011). Object-Oriented and Classical Software Engineering, McGraw-Hill.
4. McGregor, J.D., and Sykes, D.A. (2001). A Practical Guide to Testing Object-Oriented Software, Addison-Wesley Longman Publishing Co., Inc.
5. A fuzzy-filtered neuro-fuzzy framework for software fault prediction for inter-version and inter-project evaluation10.1016/j.asoc.2019.02.008 ↗
6. Software fault prediction using data mining, machine learning and deep learning techniques: A systematic literature review10.1016/j.compeleceng.2022.107886 ↗
7. Schwaber, K., and Beedle, M. (2001). Agile Software Development with Scrum, Pearson. [1st ed.].
8. Gerald, D.E., and Raymond, M. (2007). Software Testing Across the Entire Software Development Life Cycle, Wiley-IEEE Computer.
9. An Empirical Exploration of the Distributions of the Chidamber and Kemerer Object-Oriented Metrics Suite10.1023/B:EMSE.0000048324.12188.a2 ↗
10. A Systematic Data Collection Procedure for SoftwareDefect Prediction10.2298/CSIS141228061M ↗
11. (2022). Apache Active MQ Bug Prediction Data Set, The Apache Software Foundation. Available online: https://downloads.apache.org/.
12. Random Forests Methods and an Application in Health Science
13. Predicting the Location and Number of Faults in Large Software Systems10.1109/TSE.2005.49 ↗
14. Turhan, B., and Bener, A. (2007, January 11–12). A Multivariate Analysis of Static Code Attributes for Defect Prediction. Proceedings of the 7th International Conference on Quality Software QSIC 2007, Portland, OR, USA.10.1109/QSIC.2007.4385500 ↗
15. Software Defect Association Mining and Defect Correction Effort Prediction10.1109/TSE.2006.1599417 ↗
16. Weyuker, E.J., Ostrand, T.J., and Bell, R.M. (2008, January 12–13). Adapting a Fault Prediction Model to Allow Widespread Usage. Proceedings of the 4th International Workshop on Predictive Models in Software Engineering, Leipzig, Germany.
17. Çatal, Ç., Sevim, U., and Diri, B. (2009, January 1–3). Software Fault Prediction of Unlabeled Program Modules. Proceedings of the World Congress on Engineering 2009, London, UK.
18. Investigating the Effect of Data set Size, Metrics Sets, and Feature Selection Techniques on Software Fault Prediction Problem10.1016/j.ins.2008.12.001 ↗
19. Do Too Many Cooks Spoil the Broth? Using the Number of Developers to Enhance Defect Prediction Models10.1007/s10664-008-9082-8 ↗
20. Data Mining Static Code Attributes to Learn Defect Predictors10.1109/TSE.2007.256941 ↗
21. Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults10.1109/TSE.2006.102 ↗
22. Software Fault Prediction: A Literature Review and Current Trends10.1016/j.eswa.2010.10.024 ↗
23. A Systematic and Comprehensive Investigation of Methods to Build and Evaluate Fault Prediction Models10.1016/j.jss.2009.06.055 ↗
24. Prediction Approach of Software Fault-proneness Based on Hybrid Artificial Neural Network and Quantum Particle Swarm Optimization10.1016/j.asoc.2015.07.006 ↗
25. Deep neural network based hybrid approach for software defect prediction using software metrics10.1007/s10586-018-1696-z ↗
26. Lino Ferreira da Silva Barros, M.H., Oliveira Alves, G., Morais Florêncio Souza, L., da Silva Rocha, E., Lorenzato de Oliveira, J.F., Lynn, T., Sampaio, V., and Endo, P.T. (2021). Benchmarking Machine Learning Models to Assist in the Prognosis of Tuberculosis. Informatics, 8.10.20944/preprints202103.0284.v2 ↗
27. Multiple-classifiers in software quality engineering: Combining predictors to improve software fault prediction ability
28. Deep learning based software defect prediction10.1016/j.neucom.2019.11.067 ↗
29. Abdu, A., Zhai, Z., Algabri, R., Abdo, H.A., Hamad, K., and Al-antari, M.A. (2022). Deep Learning-Based Software Defect Prediction via Semantic Key Features of Source Code—Systematic Survey. Mathematics, 10.10.3390/math10173120 ↗
30. Brownlee, J. (2022, October 20). What is Deep Learning? Machine Learning Mastery. Available online: https://machinelearningmastery.com/what-is-deep-learning/.
31. Majority vote feature selection algorithm in software fault prediction10.2298/CSIS180312039B ↗
32. Alpaydin, E. (2010). Introduction to Machine Learning, The MIT Press. [2nd ed.].
33. Bagging Predictors10.1007/BF00058655 ↗
34. Schapire, R.E. (August, January 31). A Brief Introduction to Boosting. Proceedings of the 16th International Joint Conference on Artificial Intelligence IJCAI 1999, Stockholm, Sweden.
35. Random Forests10.1023/A:1010933404324 ↗
36. Rotation Forest: A New Classifier Ensemble Method10.1109/TPAMI.2006.211 ↗
37. Classifier Ensemble Construction with Rotation Forest to Improve Medical Diagnosis Performance of Machine Learning Algorithms10.1016/j.cmpb.2011.03.018 ↗
38. Deep Learning10.1038/nature14539 ↗
39. Gender Prediction from Image Using Deep Learning Algorithms
40. Deep learning for sentiment analysis10.1111/lnc3.12228 ↗
41. Pant, D.R., Neupane, P., Poudel, A., Pokhrel, A., and Lama, B.K. (2018, January 25–27). Recurrent neural network based Bitcoin price prediction by Twitter sentiment analysis. Proceedings of the IEEE 3rd International Conference on Computing, Communication and Security, Kathmandu, Nepal.10.1109/CCCS.2018.8586824 ↗
42. Bidirectional LSTM with attention mechanism and convolutional layer for text classification10.1016/j.neucom.2019.01.078 ↗
43. Deep learning in neural networks: An overview10.1016/j.neunet.2014.09.003 ↗
44. Software defect prediction via attention-based recurrent neural network
45. An empirical comparison of validation methods for software prediction models10.1002/smr.2367 ↗
46. Chollet, F. (2017). Deep Learning with Python, Manning Publications.
47. Kingma, D.P., and Ba, J. (2014). Adam: A Method for Stochastic Optimization, ICLR 2015. arXiv.
48. Eclipse Bug Prediction Data Set, The Eclipse Foundation. Available online: https://www.eclipse.org/org/foundation/January2022.
49. (2022, October 20). Flexible & Powerful Open Source Multi-Protocol Messaging. Apache Active MQ. Available online: https://activemq.apache.org/.
50. (2022, October 20). Tutorial on McCabe and Halsted. Available online: http://openscience.us/repo/defect/mccabehalsted/tut.htm.
51. Establishing a software defect prediction model via effective dimension reduction10.1016/j.ins.2018.10.056 ↗
52. Development of majority vote ensemble feature selection algorithm augmented with rank allocation to enhance Turkish text categorization10.3906/elk-1911-116 ↗