Code peer review is a way of software inspection in which product artifacts are examined by a group consisting of its author and relevant developers in order to assess its technical content and quality. Basically, a peer review process in an open source software project relies on the broadcasting mechanism in which code changes are communicated to a registered and potentially interested set of developers. A passive review mechanism cannot assign tasks to contributors and eventually could become inefficient. Also late peer review responses could produce additional bugs because the open source projects evolve continuously.
To solve these issues, we propose a Graph-based analysis of the review contributions to recommend target developers for the peer review process. We collected commit history from twenty projects on Github and analyzed their peer review interaction between code changers and reviewers. In order to recommend target developers, we applied two approaches: (1) Peer Review Interaction and (2) Social Network Centrality Analysis. Regarding Social Network Centrality Analysis, we used closeness and betweenness metrics. The set of projects was divided by the number of merged pull requests. First, the projects with large number pull requests can adopt recommending notification method, whereas the projects with the small number pull requests cannot apply it since they do not have a rich training set for the model.
We defined three types of stages (initializing, evolving, and stabilizing stage) for an open source project in terms of the number of defects to apply appropriate notification. As a result, we served a sophisticated notification for peer review during the project life cycle. Moreover, we proved our model is evolutionary model. Finally, we calculated how much overhead saves by our model.
This research may enable open source software developers and their managers to enhance their code peer review process and save the time take to...