Code Reviews with Divergent Review Scores: An Empirical Study of the OpenStack and Qt Communities

Code Reviews with Divergent Review Scores: An Empirical Study of the OpenStack and Qt Communities
复制标题

具有不同评审分数的代码评审:OpenStack 和 Qt 社区的实证研究

DOI:
10.1109/tse.2020.2977907
复制
发表时间:
2020
影响因子:
7.4
通讯作者:
Kenichi Matsumoto
Kenichi Matsumoto
中科院分区:
计算机科学1区
文献类型:
--
作者:
Toshiki Hirao;Shane McIntosh;Akinori Ihara;Kenichi Matsumoto

文献摘要

相似文献

代码审查是一种广泛采用的软件质量实践,开发人员可以互相批评对方的补丁。除了提供建设性反馈之外,审阅者还可以提供分数来指示是否应集成补丁。由于审阅者的意见可能不同,补丁可能会获得正面和负面的分数。如果不仔细解决分数不同的评审,可能会导致评审文化紧张,并可能减慢整合速度。在本文中,我们研究了 OpenStack 和 Qt 社区中具有不同评论分数的补丁。定量分析表明,具有不同评审分数的补丁:(1)占获得多个评审分数的补丁的 15-37%; (2) 被整合的次数多于被放弃的次数; (3) 70% 的案例中,在获得正分之后获得负分。此外,定性分析表明,具有强烈分歧分数的补丁: (4) 被放弃的补丁比具有弱分歧分数的补丁和没有分歧分数的补丁更容易遭受外部问题(例如,集成规划、内容重复); (5) 集成通常可以间接解决审阅者的担忧(即不更改补丁)。我们的结果表明,审核工具应与发布计划集成,并检测类似补丁的并发开发,以优化具有不同分数的审核讨论。此外,补丁作者应该注意,即使是最具分歧的补丁也通常是通过讨论、集成时机和仔细修订来集成的。
Code review is a broadly adopted software quality practice where developers critique each others’ patches. In addition to providing constructive feedback, reviewers may provide a score to indicate whether the patch should be integrated. Since reviewer opinions may differ, patches can receive both positive and negative scores. If reviews with divergent scores are not carefully resolved, they may contribute to a tense reviewing culture and may slow down integration. In this article, we study patches with divergent review scores in theOpenStackandQtcommunities. Quantitative analysis indicates that patches with divergent review scores: (1) account for 15–37 percent of patches that receive multiple review scores; (2) are integrated more often than they are abandoned; and (3) receive negative scores after positive ones in 70 percent of cases. Furthermore, a qualitative analysis indicates that patches with strongly divergent scores that: (4) are abandoned more often suffer from external issues (e.g., integration planning, content duplication) than patches with weakly divergent scores and patches without divergent scores; and (5) are integrated often address reviewer concerns indirectly (i.e., without changing patches). Our results suggest that review tooling should integrate with release schedules and detect concurrent development of similar patches to optimize review discussions with divergent scores. Moreover, patch authors should note that even the most divisive patches are often integrated through discussion, integration timing, and careful revision.