JITGNN: A Deep Graph Neural Network for Just-In-Time Bug Prediction
Loading...
Date
2022-05-10
Authors
Keshavarz, Hossein
Journal Title
Journal ISSN
Volume Title
Publisher
University of Waterloo
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, while the entities that are predicted to be defective in other forms of bug predictions might be developed by multiple developers. JIT bug prediction can be applied when the design decisions are fresh in the developer's mind; therefore, it takes less effort to review the change and fix the potential issues. Over the years, many approaches have been proposed to tackle the JIT bug prediction problem. These methods mainly rely on the change metrics such as the size of the change, the number of modified files in the change, and the experience of the author.
Little work has been done on the inclusion of the syntax and semantics of the change in JIT models. Also, although there has been extensive work on employing deep learning models for other forms of bug prediction, there are not many deep models for JIT bug prediction. None of the existing JIT models in which the changed code is included, consider the graph structure of source codes and the change codes are considered as plain text in these models. In this work, we propose a JIT model that incorporates both the content and metadata of changes leveraging the graph structure of programs. To this end, we designed and built \textit{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 the state-of-the-art JIT models. Our study shows that JITGNN achieves the same AUC as the state-of-the-art model (JITLine), which does not consider the code structure of source codes, and they both have the same discriminatory power.
Description
Keywords
just-in-time bug prediction, software engineering, graph neural networks, deep learning, bug prediction, machine learning