- 0
- 0
- 约1.67千字
- 约 18页
- 2022-11-05 发布于四川
- 举报
Github 中持续集成对生产效率和质量的影响Quality and Productivity Outcomes Relating to Continuous Integration in GitHub ( FSE 15 ) Background Research Questions RQ1. Productivity How is the productivity of teams affected by CI? RQ2. Quality What is the effect of CI on software quality? Methods Data Collection Selecting Projects Collecting Data on Source and Test Files Collecting Productivity Data Collecting Quality Data Analysis Selecting Projects 数据源:GHTorrent(截止10/11/2014) 基本要求:时间长,在中间某个时间点开始使用CI;PR数大于200;使用PR Based模式 语言:主流语言(Ruby, Python, JavaScript, PHP, Java, Scala, C and C++) 初步筛选得到1884个 CI种类:Jenkins和Travis-CI,前者的构建历史不可跟踪。选择使用Travis-CI的项目 筛选得到918个 保证CI被合理使用:使用CI后收到的PR占 25% - 75%,而且CI过程包含测试 筛选得到246个 Selecting Projects Collecting Data on Source and Test Files 从项目创建开始,收集存储库3个月的快照,作为每个 PR 前存储库状态的近似。 使用 CLOC,基于文件的扩展名获得了文件数量、可执行行数数据。 Collecting Productivity Data Productivity Data :每个月合入 PR 的数量 一共24个月,未使用 CI 和使用 CI 各占12个月 Collecting Productivity Data Collecting Quality Data Quality Data :每个月的 bug 数量 两种 bug 数量分析方法: 检测 commit 关键字:不精确 通过 github 内部的 issue 功能获取:tag 或 关键词分析 启发式方法 选择issue 超过100个的42个项目 issue进行分类,对于有 bug 标签的issue,人工提取到关键词列表(defect, error, bug, issue, mistake, incorrect, fault, and ?aw) 然后将这些关键词对所有 issue 进行分类 Collecting Quality Data Analysis 多重回归建模:描述一组解释因变量(是否使用CI)和响应(单位时间bug数量)之间的关系。 面临的挑战:① 数据过于分散,方差远大于平均值;② 0 值过多 使用了负二项式(NB)回归处理第一个问题 使用零膨胀(zero-in?ated)模型处理第二个挑战 避免多重共线性:记录变换预测变量来稳定方差以改进模型,确保VIF(variance in?ation factor,方差因子)在3-5之间 去除异常点:异常点可能会影响回归方程的斜率,影响模型适配性,超过 k(1 + 2/n)median(x) + θ 的点为异常点,θ 是位移指数,k 保证不超过 3% 的点被标记为异常点。 Results Discussion 建模方法(ZINB, Zero-In?ated Negative Binomial ) PR 有两种状态,接受和拒绝分别建模 社会关系会对判定有影响,因此内部开发者和外部贡献者分别建模 *
原创力文档

文档评论(0)