UWSpace is currently experiencing technical difficulties resulting from its recent migration to a new version of its software. These technical issues are not affecting the submission and browse features of the site. UWaterloo community members may continue submitting items to UWSpace. We apologize for the inconvenience, and are actively working to resolve these technical issues.
 

JITGNN: A Deep Graph Neural Network for Just-In-Time Bug Prediction

Loading...
Thumbnail Image

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

LC Keywords

Citation