Defect Prediction With Semantics and Context Features of Codes Based on Graph Representation Learning
Jiaxi Xu,Fei Wang,Jun Ai
DOI: https://doi.org/10.1109/tr.2020.3040191
IF: 5.883
2021-06-01
IEEE Transactions on Reliability
Abstract:To optimize the process of software testing and to improve software quality and reliability, many attempts have been made to develop more effective methods for predicting software defects. Previous work on defect prediction has used machine learning and artificial software metrics. Unfortunately, artificial metrics are unable to represent the features of syntactic, semantic, and context information of defective modules. In this article, therefore, we propose a practical approach for identifying software defect patterns via the combination of semantics and context information using abstract syntax tree representation learning. Graph neural networks are also leveraged to capture the latent defect information of defective subtrees, which are pruned based on a fix-inducing change. To validate the proposed approach for predicting defects, we define mining rules based on the GitHub workflow and collect 6052 defects from 307 projects. The experiments indicate that the proposed approach performs better than the state-of-the-art approach and five traditional machine learning baselines. An ablation study shows that the information about code concepts leads to a significant increase in accuracy.
engineering, electrical & electronic,computer science, software engineering, hardware & architecture
What problem does this paper attempt to address?