JITGNN: A deep graph neural network framework for Just-In-Time bug prediction

Hossein Keshavarz,Gema Rodríguez-Pérez
DOI: https://doi.org/10.1016/j.jss.2024.111984
IF: 3.5
2024-01-26
Journal of Systems and Software
Abstract:Just-In-Time (JIT) bug prediction is the problem of predicting software failure immediately after a change is submitted to the code base. JIT bug prediction is often preferred to other types of bug prediction (subsystem, module, file, class, or function-level) because changes are associated with one developer and the predictions can be applied when the design decisions are fresh in the developer's mind. Many approaches have been proposed to predict correctly whether a software change is bug-inducing. These approaches mainly rely on change metrics such as the size, the number of modified files, and the developer's experience. Although there has been extensive work on employing deep learning models for other forms of bug prediction, there are few deep models for JIT bug prediction. Furthermore, none of the existing JIT models that use the changed source code consider the graph structure of source codes. In this paper, we propose a JIT model that incorporates both the content and metadata of changes leveraging the graph structure of programs. We designed and built JITGNN , a deep graph neural network (GNN) framework for JIT bug prediction. JITGNN uses the abstract syntax trees (ASTs) of changed programs. We evaluate the performance of JITGNN on two datasets and compare it to a baseline and state-of-the-art JIT model. We hypothesize that by including the graph structure of source codes in the JIT bug prediction process, we can improve the performance of the JIT models. Our study, however, shows that JITGNN achieves the same AUC as the state-of-the-art model (JITLine), and they both have the same discriminatory power.
computer science, theory & methods, software engineering
What problem does this paper attempt to address?