Automatic Code Review by Learning the Revision of Source Code

  • Shu-Ting Shi Nanjing University
  • Ming Li Nanjing University
  • David Lo Singapore Management University
  • Ferdian Thung Singapore Management University
  • Xuan Huo Nanjing University

Abstract

Code review is the process of manual inspection on the revision of the source code in order to find out whether the revised source code eventually meets the revision requirements. However, manual code review is time-consuming, and automating such the code review process will alleviate the burden of code reviewers and speed up the software maintenance process. To construct the model for automatic code review, the characteristics of the revisions of source code (i.e., the difference between the two pieces of source code) should be properly captured and modeled. Unfortunately, most of the existing techniques can easily model the overall correlation between two pieces of source code, but not for the “difference” between two pieces of source code. In this paper, we propose a novel deep model named DACE for automatic code review. Such a model is able to learn revision features by contrasting the revised hunks from the original and revised source code with respect to the code context containing the hunks. Experimental results on six open source software projects indicate by learning the revision features, DACE can outperform the competing approaches in automatic code review.

Published
2019-07-17
Section
AAAI Technical Track: Machine Learning