码迷,mamicode.com
首页 > 其他好文 > 详细

【软件分析与挖掘】An Empirical Study of Bugs in Build Process

时间:2015-04-10 17:46:41      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

摘要

             对软件构建过程中所产生的错误(build process bugs)进行实证研究。

             5个开源项目:CXF, Camel, Felix,Struts, and Tuscany。

             把build process bugs 和 other bugs在3个维度比较:bug severity, bug ?x time, the number of ?les modi?ed to ?x a bug。             

             结论表明,

                     Ⅰ.the fraction of build process bugs which are above major severity level(严重级别) is lower than that of other bugs.

                      小部分高于major级别的软件构建过程中的错误数量少于非软件构建过程中的错误数量  

                      Ⅱ.the time effort required to ?x a build process bug is around 2.03 times more than that of a non-build process bug.

                      修复一个软件构建过程中的错误的时间花费是非构建错误的2.03倍

                      Ⅲ.the number of source ?les modi?ed to ?x a build process bug is around 2.34 times more than that modi?ed for a non-build bug.

                      修复一个软件构建过程过程中的错误需要改动的源文件数量是非构建错误的2.34倍


S1   Introduction

软件系统生成过程:编译成二进制代码,封装,执行测试样例,静态分析,生成文档,部署产品。

3个研究问题:

    • build process bugs 和 non-build bugs的严重级别分布
    • 修复build process bugs 和 non-build bugs所花的时间
    • 修复build process bugs 和 non-build bugs需要修改多少的源码

S2   METHODOLOGY & BASIC STATISTICS

To collect build process bugs we follow a two step approach: bug report collection and build process bug identi?cation.

Bug Report Collection

5个开源项目,利用JIRA bug tracking systems搜集错误报告:

技术分享

Build Process Bug Identi?cation

标识Build Process Bug:

  1. 半自动的分析出哪些report是我们需要的;
  2. 从这些报告中,手动分析出哪些是构建过程中产生的错误,哪些不是;

由于并非每一个构建阶段的文件都会出现在构建文件中,因此筛选到最后,left with 3,205 bug reports (642, 836, 811, 343, and 573 for CXF, Camel, Felix, Struts2, and Tuscany, respectively)。

对于所有的错误报告,人工地去检测它是否是构建过程中出现的错误,最后,identi?ed 121 build process bugs (27, 33, 12, 11, and 38 for CXF, Camel, Felix, Struts2,
and Tuscany, respectively).


S3    EMPIRICAL STUDY RESULTS 实证研究结果

RQ1:构建过程中的错误的严重分布

JIRA在bug report中指定了5中严重等级:Blocker, Critical, Major, Minor, and Trivial.

技术分享

发现:

  1. 无论是构建错误还是非构建错误,他们导致系统严重问题(级别为Blocker和Critical)的错误数量都相对较少;
  2. 导致系统严重问题(级别为Blocker和Critical)的错误中,构建错误的数量小于非构建错误的数量;

技术分享

RQ2:BUG修复时间

用两个时间戳来记录fix time

技术分享

发现:

  1. To ?x a bug, the time effort for a build process bug is around 2.03 times the time required to ?x a non-build bug.(构建错误的维护时间是非构建错误的维护时间的2.03倍)
  2. the mean ?x time of bug reports whose severity levels are either Major, Critical, or Blocker is much longer for build process bugs than for other bugs(严重等级在Major, Critical, or Blocker 的构建错误的平均维护时间要比相应的非构建错误的维护时间要长)

技术分享

RQ3:修改过的源文件的数量

技术分享

发现:

  1. the number of source ?les modi?ed for build process bugs is much more than that of non-build bugs(修复构建错误所需要修改的源文件数量远远多余非构建错误)
  2. the number of source ?les modi?ed for bug reports whose severity levels are either Major, Critical, or Blocker is much more for build

process bugs than for other bugs, (严重等级在Major, Critical, or Blocker的构建错误修复所需的源文件数量远远大于非构建错误)

技术分享

实证研究结果的有效性

由于有些过程是人工检测的,所以难免会有一些错误

【软件分析与挖掘】An Empirical Study of Bugs in Build Process

标签:

原文地址:http://www.cnblogs.com/XBWer/p/4414956.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!