Please note: This master’s thesis presentation will be given online.
Hossein Keshavarz, Master’s candidate
David R. Cheriton School of Computer Science
Supervisor: Professor Mei Nagappan
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 preferred to other types of bug prediction (subsystem, module, file, class, or function-level) because changes are associated with one developer and the design decisions are fresh in his/her mind; therefore, it takes less effort to review the change and fix the potential issues. Over the years, many algorithms have been proposed to approach 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 change code is included, consider the graph structure of source codes and they all consider the change codes as plain text.
In this work, we attempt to propose a JIT model that incorporates both content and metadata of change leveraging the graph structure of programs. To this end, 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 the state-of-the-art JIT models. Our study shows that JITGNN performance is comparable to the state-of-the-art JIT model.