Abstract - Code review is a software quality assurance approach to ensure that a software system is safe and reliable enough. Recent software developments employ the Modern Code Review (MCR) approach, where developers informally discuss the quality of software systems via online web tools. The MCR has mainly been driven by five motivations i.e., defect finding, code improvement, knowledge transfer, context understanding, and team transparency. Especially, in terms of resolving code reviews, the concept of divergence (i.e., different thoughts are provided asynchronously) drives developers to transfer their technical knowledge. Moreover, the concept of openness (i.e., any developer can participate in code reviews) allows developers to join and leave discussions.
The divergence and openness may cause negative impacts on code review resolutions i.e., tense discussions and the lack of participation. Developers may leave communities due to tense discussions, while the lack of participation is associated with the poor software quality. Prior work discovered those negative impacts on code review quality; however, little is known about the impacts of divergence and openness on code review resolutions (i.e., from an initial submission to final integration decision). We presume that our fine-grained studies, where the thesis focuses divergence and openness on reviewer commenting, can bring practical implications to deal with the diversity and openness on code review resolutions.
The thesis set out to perform three empirical studies at a comment-level. We first explore how reviewer discussions become divergent. The study shows that external dependencies across multiple review artifacts are highly likely to be a root cause of divergent discussion, suggesting that developers should be aware of both internal and external issues to resolve divergent discussions. Second, we study what factors play an important role in keeping participation until the end of reviews. The study shows that experienced reviewers should be invited to have much participation. Third, we investigate the impact of review linkage on code review analytics. The study shows that taking review linkage into account improves code review analytics, suggesting that practitioners should be aware of the potential that their reviews may be linked to other reviews. Overall, the thesis shows practical implications to have a deep understanding of the mechanism of code review resolutions at a comment-level. Moreover, the thesis also provides generalized suggestions that can be applicable to other software projects.
Preprint - PDF