Software Defect Prediction via Convolutional Neural Network
By Jian Li, Pinjia He, Jieming Zhu, Michael R. Lyu. International Conference on Software Quality, Reliability and Security, 2017
406 citations recorded by the source corpus.
To improve software reliability, software defect prediction is utilized to assist developers in finding potential bugs and allocating their testing efforts. Traditional defect prediction studies mainly focus on designing hand-crafted features, which are input into machine learning classifiers to identify defective code. However, these hand-crafted features often fail to capture the semantic and structural information of programs. Such information is important in modeling program functionality and can lead to more accurate defect prediction.In this paper, we propose a framework called Defect Prediction via Convolutional Neural Network (DP-CNN), which leverages deep learning for effective feature generation. Specifically, based on the programs' Abstract Syntax Trees (ASTs), we first extract token vectors, which are then encoded as numerical vectors via mapping and word embedding. We feed the numerical vectors into Convolutional Neural Network to automatically learn semantic and structural features of programs. After that, we combine the learned features with traditional hand-crafted features, for accurate software defect prediction. We evaluate our method on seven open source projects in terms of F-measure in defect prediction. The experimental results show that in average, DP-CNN improves the state-of-the-art method by 12%.
Subfields: Computer Networks and Communications, Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/95badade580eeff6a2f512268a017b9b66c6a212
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
In Information Systems
In Software
Citations in the corpus
- CoCoNuT: combining context-aware neural translation models using ensemble for program repair (2020, methodology): “Deep Learning in Software Engineering: The software engineering community had applied deep learning to perform various tasks such as defects prediction [40, 79, 81], source code representation [6, 7, 66, 80], source code summarization [4, 22] source code modeling [5, 11, 26, 83], code clone detectio”
- HELoC: Hierarchical Contrastive Learning of Source Code Representation (2022, background): “Many source code representation techniques have achieved considerable success in many program comprehension tasks, including code classification [50, 64, 65], malware detection [11, 66], and code generation [67, 68].”
- 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 ”