Abstract:
Background: Software code review is a one of the major and important activity in modern
software development and evolution. To improve software quality, identify and remove
defects before integration, code review is considered as efficient and effective practice. Code
reviewers having right expertise, experience and apt amount of knowledge with the code
being reviewed leads to successful code processes, fewer bugs and less maintenance cost.
Aim & Objective: Usually existing studies identify code reviewers based on one or two
objectives i.e., expertise, availability etc. to review pull requests. With the growing size of
distributed development teams, picking suitable reviewers is a challenging task. However,
due to less resources and shorter deadlines, the management of code reviews and appropriate
recommendation of code reviewers based on three objectives consecutively is an ambitious
task to be considered as aim of this thesis.
Methodology: This thesis addresses the formulation for managing and recommending code
reviewers based on multi conflicting objectives (i.e., availability, expertise and collaboration)
simultaneously. ‘NSGA-III’ is used as optimization algorithm to find the most suitable
reviewers while keeping expertise and availability ratio high and less collaboration between
reviewers and developers.
Results and Conclusion: The results were implemented and validated on three (medium to
large size) open-source projects named as LibreOffice, Qt and OpenStack. We calculated
precision, recall, MRR, accuracy for all 3 projects on average. The results from our proposed
approach accurately recommended the code reviewers with the precision up to 80%, 86% of
recall, 82% mean reciprocal rank and 84% average accuracy by improving state-of-the-art.
We also compared the experimental sets between NSGA-III and NSGA-II in terms of finding
mean fitness and execution time of both algorithms. As a result, NSGA-III recommended the
reviewers in less execution time and better fitness values in comparison to NSGA-II in all
experimental sets. The proposed approach could be practical to MCR in order to help
developers while recommending suitable code-reviewers in less time and resources to speed
up the review process.