摘要

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

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

把build process bugs 和 other bugs在3个维度比较:bug severity, bug fix time, the number of files modified to fix 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 fix a build process bug is around 2.03 times more than that of a non-build process bug.

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

Ⅲ.the number of source files modified to fix a build process bug is around 2.34 times more than that modified 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 identification.

Bug Report Collection

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

Build Process Bug Identification

标识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)。

对于所有的错误报告,人工地去检测它是否是构建过程中出现的错误,最后,identified 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 fix a bug, the time effort for a build process bug is around 2.03 times the time required to fix a non-build bug.(构建错误的维护时间是非构建错误的维护时间的2.03倍)
  2. the mean fix 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 files modified for build process bugs is much more than that of non-build bugs(修复构建错误所需要修改的源文件数量远远多余非构建错误)
  2. the number of source files modified 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的构建错误修复所需的源文件数量远远大于非构建错误)

实证研究结果的有效性

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

转载于:https://www.cnblogs.com/XBWer/p/4414956.html

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

  1. 【软件分析与挖掘】Vision of Software Clone Management: Past, Present, and Future (Keynote Paper)...

    abstract: 代码克隆的综述 S1    INTRODUCTION AND MOTIVATION 代码克隆的利弊: 利:可以有效地去耦合,避免其他一些可能的错误: 弊:当被复制的那段code中带 ...

  2. 基于NLP的软件分析和程序漏洞挖掘(二)

    找到NLP在软件分析和漏洞挖掘的契合点之后,我们需要去调研这方面现有的研究情况.发现已经有人使用NLP来对二进制代码进行分析,主要有3种方向上使用NLP分析二进制代码,但大多数都是对二进制代码进行静态 ...

  3. 基于软件分析的智能化开发新型服务与技术

    摘要:从云服务厂商的角度来给大家介绍一下,当前业界围绕该领域要做哪些事情. 本文分享自华为云社区<基于软件分析的智能化开发新型服务与技术>,作者:敏捷的小智 . 本文以技术文章的方式回顾梁 ...

  4. 论文笔记——An Empirical Study of Supplementary Bug Fixes

    An Empirical Study of Supplementary Bug Fixes 这篇文章关于patch的不完整所做的一个study,整理出来了认为对自己比较关键的地方,以供以后参考. 文章 ...

  5. 软件分析与设计:分析什么?如何设计?

    简介:分析与设计这两个词我们平时经常听到,也经常讲,那么分析与设计的本质究竟是什么呢?到底要分析什么?又到底要怎样去设计?这3个问题如果平时没有一些积累,突然被问到这些,一时也会显得不知所措.接下面在 ...

  6. TGRS2022/遥感:An Empirical Study of Remote Sensing Pretraining遥感预训练的实证研究

    TGRS2022/遥感:An Empirical Study of Remote Sensing Pretraining遥感预训练的实证研究 0.摘要 1.概述 2.相关工作 2.1.空中场景识别 2 ...

  7. 【软件分析】软件分析、设计与建模迭代式详解

    软件分析.设计与建模迭代式详解 1.introduction 1.1 OOA/D 1.2 Iterative, Evolutionary, and Agile 2.Case Study and Req ...

  8. 【How to Design Translation Prompts for ChatGPT: An Empirical Study 论文略读】

    How to Design Translation Prompts for ChatGPT: An Empirical Study 论文略读 INFORMATION Abstract 1 Introd ...

  9. 二值网络训练--A Empirical Study of Binary Neural Networks' Optimisation

    A Empirical Study of Binary Neural Networks' Optimisation ICLR2019 https://github.com/mi-lad/studyin ...

最新文章

  1. 科技城|从专利布局看人工智能领域全球竞争与中国面临的挑战
  2. mysql 之mvcc多版本控制
  3. Alpha 冲刺 —— 十分之八
  4. 擅长排列的小明 II
  5. C++ Iterators(迭代器)
  6. 一个简易的渲染循环结构
  7. 搜狗浏览器验证码无法显示_逃离塔科夫账号注册-验证码不显示
  8. 英特尔处理器接连爆出漏洞,Intel:这次不打算修了
  9. 8086 CPU 寄存器
  10. 微信小程序-001-抽签功能-000-目录概要
  11. 【图神经网络】Pytorch图神经网络库——PyG基础操作
  12. Hive 自定义函数编写(UDF,UDAF,UDTF)
  13. JasperReport
  14. Python深度优先解决八数码问题
  15. idea输入英文时,间距变大报红 cannot resolve symbol ‘xxx‘
  16. AirPlay on Mac/Win
  17. 基于SSM开发医药销售管理系统
  18. echarts 四川省地图成都默认高亮
  19. 程序员奶爸自制AI喂奶检测仪,预判宝宝饿点,不让哭声影响老婆睡眠
  20. Altium designer PCB走线包地处理 教程

热门文章

  1. php-fpm容易假死,实现自动重启php服务的脚本 通过后
  2. GO语言打包ICO图标
  3. 政府安全资讯精选 2018年第十期 美国CLOUD Act法案正式通过成为法律;英国发布“网络安全出口”战略 以促进对外贸易...
  4. 云计算发展备受瞩目的五大方向
  5. django 安装/部署过程
  6. 吉隆坡强制所有餐馆明年必须设有无线上网服务
  7. webpack文件夹打包_webpack多入口文件页面打包详解
  8. java类加载体系,Java类加载体系
  9. 基于上下文化图注意力网络的知识图谱的条目推荐
  10. 今日恐慌与贪婪指数为61 贪婪程度有所缓解