Page 49 - 《软件学报》2021年第11期
P. 49

胡渊喆 等:响应时间约束的代码评审人推荐                                                            3375


                 配、或评审人没有足够时间          [1,4] ,这延长了评审周期、降低了参与人员的积极性和项目的发展速度.因此,本文提
                 出响应时间约束的代码评审人推荐问题,即推荐的评审人能否在约定时间内进行评审,目标是为代码评审推荐
                 合适且响应速度快的评审人,加速评审过程,提升社区活跃性.

                 1.2   人员响应时间分析
                    图 1 给出 flutter/fluttert 和 ohmyzsh/ohmyzsh 两个项目的代码评审人的响应时间分布,其他项目的趋势和这
                 两个项目相同,篇幅限制不再列出.











                                         (a) flutter/flutter                        (b) ohmyzsh/ohmyzsh
                                           Fig.1    Code reviewer average response time
                                               图 1   代码评审人的平均响应时间

                    从图 1 可以看出,项目中不同代码评审人的平均响应时间存在很大差异.例如,在 flutter/flutter 项目中,响应
                 时间为 0.02h~912.7d,有 6.7%的评审人的平均响应时间小于 2h,有 10.9%的评审人的平均响应时间大于 3 个月;
                 ohmyzsh/ohmyzsh 项目中,83.7%的评审人的平均响应时间大约 1d.
                    已有研究    [1,4] 指出,快速响应是 pull-based 开发模型中支持贡献的关键组成部分.快速的响应能够很好地鼓
                 励开源项目贡献者,有效地减少新贡献者加入项目的障碍;相反,代码贡献者往往都会对迟迟无法得到评审人响
                 应而担忧,甚至影响他们后续对项目的参与和贡献.对于那些响应很慢的评审人,即便他们有经验、有能力,他们
                 的评审结果对于待评审的代码,也是远水不解近渴,不能及时有效地帮助项目管理者了解代码质量,或者帮助开
                 发人员改进质量.所以,需要将响应时间纳入评审人推荐问题中,考虑评审人在历史代码评审中的响应时间,以
                 便推荐出响应速度快的代码评审人.
                 1.3   人员活跃性分析

                    我们取 2018 年 1 月~2019 年 1 月的评审数据,按照每半月为一个区间(作为横坐标的 24 个时间区间),统计
                 该区间上某代码评审人是否有评审活动,有评审活动记为 1,没有评审活动记为 0(作为纵坐标).图 2 给出了
                 flutter/flutter 和 ohmyzsh/ohmyzsh 两个项目上随机选取的 6 个评审人员的活动情况,其他项目的趋势和这两个
                 项目相同,篇幅限制不再列出.












                                      (a) flutter/flutter                              (b) ohmyzsh/ohmyzsh
                                        Fig.2    Review activity distribution of code reviewer
                                               图 2   代码评审人的评审活动分布
   44   45   46   47   48   49   50   51   52   53   54