journal article·2022Open access

Software Defect Prediction Harnessing on Multi 1-Dimensional Convolutional Neural Network Structure

Kuntha Pin, Jee Ho Chang, Yunyoung Nam

Computers, Materials & Continua· Volume 71· Issue 1

Abstract

Developing successful software with no defects is one of the main goals of software projects. In order to provide a software project with the anticipated software quality, the prediction of software defects plays a vital role. Machine learning, and particularly deep learning, have been advocated for predicting software defects, however both suffer from inadequate accuracy, overfitting, and complicated structure. In this paper, we aim to address such issues in predicting software defects. We propose a novel structure of 1-Dimensional Convolutional Neural Network (1D-CNN), a deep learning architecture to extract useful knowledge, identifying and modelling the knowledge in the data sequence, reduce overfitting, and finally, predict whether the units of code are defects prone. We design large-scale empirical studies to reveal the proposed model's effectiveness by comparing four established traditional machine learning baseline models and four state-of-the-art baselines in software defect prediction based on the NASA datasets. The experimental results demonstrate that in terms of f-measure, an optimal and modest 1D-CNN with a dropout layer outperforms baseline and state-of-the-art models by 66.79% and 23.88%, respectively, in ways that minimize overfitting and improving prediction performance for software defects. According to the results, 1D-CNN seems to be successful in predicting software defects and may be applied and adopted for a practical problem in software engineering. This, in turn, could lead to saving software development resources and producing more reliable software.
Source: openalex_inverted_index · 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.

References (57)

Show source-provided references
1. Deep learning for software defect prediction: A survey
2. IEEE standard classification for software anomalies
3. Miraj · Software defect severity level prediction using machine learning techniques · 2021
4. Automatically learning semantic features for defect prediction
5. Software defect prediction via convolutional neural network
6. Bootstrap aggregation ensemble learning-based reliable approach for software defect prediction by using characterized code feature
7. A systematic review of machine learning techniques for software fault prediction10.1016/j.asoc.2014.11.023 ↗
8. A survey on software defect prediction using deep learning10.3390/math9111180 ↗
9. Literature review: Predicting faults in object-oriented software
10. Defect prediction: Accomplishments and future challenges
11. Count models for software quality estimation10.1109/TR.2007.896757 ↗
12. Heterogeneous cross-company defect prediction by unified metric representation and CCA-based transfer learning
13. An empirical study on real bugs for machine learning programs
14. Defect prediction between software versions with active learning and dimensionality reduction
15. Multiple kernel ensemble learning for software defect prediction10.1007/s10515-015-0179-1 ↗
16. Label propagation based semi-supervised learning for software defect prediction10.1007/s10515-016-0194-x ↗
17. Heterogeneous defect prediction through multiple kernel learning and ensemble learning
18. On the optimality of the simple Bayesian classifier under zero-one loss10.1023/A:1007413511361 ↗
19. Two further applications of a model for binary regression10.1093/biomet/45.3-4.562 ↗
20. Random forests10.1023/A:1010933404324 ↗
21. Cristianini · An Introduction to Support Vector Machines and other Kernel-Based Learning Methods · 200010.1017/CBO9780511801389 ↗
22. Benchmarking classification models for software defect prediction: A proposed framework and novel findings10.1109/TSE.2008.35 ↗
23. Revisiting the impact of classification techniques on the performance of defect prediction models
24. Imagenet classification with deep convolutional neural networks10.1145/3065386 ↗
25. Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups10.1109/MSP.2012.2205597 ↗
26. Deep learning for just-in-time defect prediction
27. Source code-based defect prediction using deep learning and transfer learning10.3233/IDA-184297 ↗
28. A suitable AST node granularity and multi-kernel transfer convolutional neural network for cross-project defect prediction10.1109/ACCESS.2020.2985780 ↗
29. An adversarial discriminative convolutional neural network for cross-project defect prediction10.1109/ACCESS.2020.2981869 ↗
30. Transfer convolutional neural network for cross-project defect prediction
31. An improved CNN model for within-project software defect prediction
32. Learning semantic features for software defect prediction by code comments embedding
33. Measuring the fault predictability of software using deep learning techniques with software metrics
34. Convolutional neural networks over control flow graphs for software defect prediction
35. Convolutional neural networks on assembly code for predicting software defects
36. Convolutional neural networks for patient-specific ECG classification
37. Wireless and real-time structural damage detection: A novel decentralized method for wireless sensor networks10.1016/j.jsv.2018.03.008 ↗
38. Real-time motor fault detection by 1-d convolutional neural networks10.1109/TIE.2016.2582729 ↗
39. A generic intelligent bearing fault diagnosis system using compact adaptive 1D CNN classifier10.1007/s11265-018-1378-3 ↗
40. A deep convolutional neural network with new training methods for bearing fault diagnosis under noisy environment and different working load10.1016/j.ymssp.2017.06.022 ↗
41. Increasing accuracy of software defect prediction using 1-dimensional CNN with SVM
42. C. Tantithamthavorn, “NASA defect dataset,” 2016. Available: https://github.com/klainfo/NASADefectDataset.
43. Software defect prediction using stacked denoising autoencoders and two-stage ensemble learning10.1016/j.infsof.2017.11.008 ↗
44. Using cross-entropy value of code for better defect prediction
45. Lessons learned from using a deep tree-based model for software defect prediction in practice
46. Software defect prediction based on enhanced metaheuristic feature selection optimization and a hybrid deep neural network10.1016/j.jss.2021.111026 ↗
47. Scikit-learn: Machine learning in python
48. Comparison of methods for real and imaginary motion classification from EEG signals
49. Deep convolutional neural networks for image classification: A comprehensive review10.1162/neco_a_00990 ↗
50. Support vector regression machines
51. L. Breiman, J. H. Friedman, R. A. Olshen and C. J. Stone, “Classification and Regression Trees,” Boca Raton: Routledge, 2017.10.1201/9781315139470 ↗
52. Estimating continuous distributions in Bayesian classifiers
53. Improving defect prediction with deep forest10.1016/j.infsof.2019.07.003 ↗
54. Deep neural network based hybrid approach for software defect prediction using software metrics10.1007/s10586-018-1696-z ↗
55. Software defect prediction via deep belief network10.1049/cje.2019.06.012 ↗
56. Software defect prediction model based on stacked denoising auto-encoder
57. Dropout: A simple way to prevent neural networks from overfitting