Deep Learning for Just-in-Time Defect Prediction
By Xinli Yang, David Lo, Xin Xia, Yun Zhang, Jianling Sun. 2015 IEEE International Conference on Software Quality, Reliability and Security, 2015
365 citations recorded by the source corpus.
Defect prediction is a very meaningful topic, particularly at change-level. Change-level defect prediction, which is also referred as just-in-time defect prediction, could not only ensure software quality in the development process, but also make the developers check and fix the defects in time. Nowadays, deep learning is a hot topic in the machine learning literature. Whether deep learning can be used to improve the performance of just-in-time defect prediction is still uninvestigated. In this paper, to bridge this research gap, we propose an approach Deeper which leverages deep learning techniques to predict defect-prone changes. We first build a set of expressive features from a set of initial change features by leveraging a deep belief network algorithm. Next, a machine learning classifier is built on the selected features. To evaluate the performance of our approach, we use datasets from six large open source projects, i.e., Bugzilla, Columba, JDT, Platform, Mozilla, and PostgreSQL, containing a total of 137,417 changes. We compare our approach with the approach proposed by Kamei et al. The experimental results show that on average across the 6 projects, Deeper could discover 32.22% more bugs than Kamei et al's approach (51.04% versus 18.82% on average). In addition, Deeper can achieve F1-scores of 0.22-0.63, which are statistically significantly higher than those of Kamei et al.'s approach on 4 out of the 6 projects.
Subfields: Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/e4be4ba1d428bc89f63662ae7b0db097fa83d651
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Information Systems
In Software
Citations in the corpus
- Automatically Learning Semantic Features for Defect Prediction (2016, methodology): “They used DBN to generate features from 14 traditional change level features: the number of mod-ified subsystems, modified directories, modified files, code added, code deleted, line of code before/after the change, files before/after the change, and several developer experience related features [68].”
- Software Defect Prediction via Convolutional Neural Network (2017, methodology): “[50] applied DBN on 14 existing change level features to generate new feature, for change level defect prediction.”
- SySeVR: A Framework for Using Deep Learning to Detect Software Vulnerabilities (2018, methodology): “CNN has been used for software defect prediction [16] and locating buggy source code [51]; DBN has been used for software defect prediction [19], [20]; RNN has been used for vulnerability detection [11], [15], [50], software traceability [12], code clone detection [13], and recognizing functions in ”
- Software Vulnerability Analysis and Discovery Using Machine-Learning and Data-Mining Techniques (2017, background): “Yang et al. (2015) presented a study on applying deep-learning methods for just-in-time software defect prediction.”
- Improving Code Localization with Repository Memory (2025, unknown): “We structure this historical data into two complementary memory stores, designed Missing import statement in generated migration (NameError: name 'models' is not defined) -----------------------------------------------------------------------------------------------------------”