Understanding Code Review Resolutions at a Fine-Grained Level

Name: Toshiki Hirao


Presentation Abstract:

Modern code review is a process where developers openly assess the quality of source code in a diversified community. Prior studies have shown how code reviews are resolved; However, little is known about the mechanism of code review resolutions at fine-grained level. In this presentation, I show the results and contributions of three main studies. The thesis provides practical implications for understanding the fine-grained level of code review resolutions.


Thesis Abstract:

Code review plays an important role in software development to ensure that source code is free from any potential problems. Traditionally, Fagan's inspection---a formal inspection where developers perform in-person meeting, had been practiced. Recent software developments employ the Modern Code Review (MCR) approach where developers discuss the quality of software via online web tools. In contrast to Fagan's traditional inspection, the MCR is a lightweight process which comprised of (1) informal, (2) tool-based, and (3) asynchronous discussions.

Prior studies analyzed how code reviews are resolved; Yet, those studies have lacked a fine-grained analysis of code review resolutions. For example, prior work showed that patch property and human factors play an important role in getting review participation. However, how much of the participation were involved by those important factors is unclear. Moreover, prior work typically treated review artifacts as independent. However, those review artifacts actually have various types of dependencies to others, which should be taken into consideration.

The thesis set out to enrich empirical studies of code review resolutions. We first explore how reviewers resolve divergent discussions. The study shows that external dependencies across multiple review artifacts are highly likely to cause divergent discussion, suggesting that code reviews are resolved by considering both internal and external issues. Second, we study how much of participation was involved and what factors play an important role in the participation duration. The study shows that experienced reviewers should be invited to have enough review participation. Third, we investigate the impact of review linkage on code review analytics. The study shows that taking external review linkage into account improves code review analytics, suggesting that practitioners should be aware of the potential that their reviews are dependent. Overall, the thesis provides practical implications for understanding the fine-grained level of code review resolutions.