Page 39 - 《软件学报》2021年第12期
P. 39
蒋竞 等:开源社区评审过程度量体系及其实证研究 3703
• 少改动、少评论、少决策者的比例:TCO≤0.05,RSO≤0.05,ISO≤0.05 的人员比例.
表 1 中给出了评审过程度量指标的定义和描述,这些度量指标从评审活动和人员分布两方面诠释了软件
评审过程中的多维属性.
Table 1 Review process metrics
表 1 评审过程度量指标
指标 描述
评审次数 一个模块的贡献请求数量
评审信息长度 一个模块里贡献请求的评审信息条数之和
评审活动
代码改动行数 一个模块代码增加、删除和修改的行数
评审时间 一个模块里贡献请求的评审时间之和
改动者数量 一个模块中的改动者者人数
评论者数量 一个模块中的评论者人数
决策者数量 一个模块中的决策者人数
多改动、多评论、多决策者的比例 TCO≥0.05,RSO≥0.05,ISO≥0.05 的人员的比例
多改动、少评论、多决策者的比例 TCO≤0.05,RSO≥0.05,ISO≥0.05 的人员的比例
人员分布 少改动、多评论、多决策者的比例 TCO≥0.05,RSO≤0.05,ISO≥0.05 的人员的比例
少改动、少评论、多决策者的比例 TCO≤0.05,RSO≤0.05,ISO≥0.05 的人员的比例
多改动、多评论、少决策者的比例 TCO≥0.05,RSO≥0.05,ISO≤0.05 的人员的比例
多改动、少评论、少决策者的比例 TCO≤0.05,RSO≥0.05,ISO≤0.05 的人员的比例
少改动、多评论、少决策者的比例 TCO≥0.05,RSO≤0.05,ISO≤0.05 的人员的比例
少改动、少评论、少决策者的比例 TCO≤0.05,RSO≤0.05,ISO≤0.05 的人员的比例
4 实证研究
为了验证度量体系的有效性和实用性,同时为了进一步研究评审过程指标与软件缺陷的相关性,本文采用
Github 的真实数据来进行实证研究.如图 2 所示,参考 Patanamon 的论文 [23] ,本文把数据分成 3 部分:上一个时间
段、当前时间段、下一个时间段.每个时间段都是 6 个月.上一个时间段的数据用来计算之前的软件缺陷;当前
时间段的数据用来计算当前的评审过程指标;下一个时间段的数据用来计算评审后的软件缺陷.然后,基于度量
评估体系对原始数据进行加工处理,计算得出各种指标,最后使用相关性分析方法研究评审过程度量指标与软
件缺陷的关系.相关系数的绝对值越大,说明度量指标和软件缺陷数量越相关,度量指标越有效.
具体来讲,本文从两个方面研究度量指标和软件缺陷的相关性.首先,计算当前时间段的代码评审度量指标
和下一个时间段软件缺陷数量的关系,来研究当前的评审过程是影响下一个时间段的软件缺陷.比如:当前时间
的评审时间更长,下一个时间段的软件缺陷是否更少.然后,计算上一个时间段的软件缺陷数量与当前时间段的
评审过程度量指标的相关性,研究之前存在的软件缺陷是否会对当前的代码评审过程造成影响.比如:上一个时
间段软件缺陷数量多的模块,是否会在当前代码评审的时间更长.
上一个时间段(6 个月) 当前时间段(6 个月) 下一个时间段(6 个月)
计算上一个时间段模块的缺陷 计算当前时间段模块的缺陷 计算下一个时间段模块的缺陷
Fig.2 Data partition
图 2 数据划分
4.1 研究过程
4.1.1 项目选择
根据 Github 上项目的关注人数和贡献请求数,本文选取 3 个热门项目:xbmc,roslyn,elasticsearch.xbmc
(https://github.com/xbmc/xbmc)是一款优秀的免费开源媒体中心软件,可以播放几乎所有的音频和视频格式.
roslyn(https://github.com/dotnet/roslyn) 是微 软开发 的一 个开源 的 .NET 编译器 , 支持 C# 和 Visual Basic.
elasticsearch(https://github.com/elastic/elasticsearch)是一个基于 Lucene 的搜索服务器,提供了一个分布式的搜索