如何使用自动“Bug邻域”分析来识别未修复Bug

发表于:2011-1-18 11:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:淘宝宛蝴    来源:51Testing软件测试网原创

  二 、bug 修复的彻底性

  第一部分主要介绍Java程序中NPR的修复的相关概念。

  图2中演示了(NPA1, NPR1)的“bug邻域”,主要包括四种类型的NPA,NPR:MaybeNPAs, Maybe NPRs, Forward NPRs, Backward NPAs.图中可以看到,Maybe NPAs 和Maybe NPRs分别与NPR1和NPA1相关,用实线来表明他们会在程序的其他运行中发生,Forward NPRs,Backward NPAs也分别与NPR1和NPA1相关,用虚线来表明他们可能会在程序的其他运行中发生,这种可能性取决于(NPA1, NPR1)如何被修复。

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/02/n-227802.html

  四 、实验

  为了评价这种方法,我们进行两次实验来研究“bug 邻域”和bug修复是否彻底。

  A、数据准备

  我们实验包括三个开源项目(Ant-1.6.0, Lucene-2.2.0, and Tomcat-4.1.27),和三个商用项目(这里称为App-A, App-B, and App-C),表格1里列出了类,方法,字节码说明和(NPA,NPR)组的个数,我们分析时采用了XYLEM工具,实验主要包括两个部分:映射部分和“bug邻域”分析部分,现在假设程序P中空指针bug为(NPA0,NPR0)。

  其中映射部分将每句语句按照顺序进行映射,(NPA0,NPR0)的映射结果有可能在P'中的另一个(NPA,NPR)组,也有可能没有任何对应的NPA或者NPR。

  “bug 邻域”分析时用了XYLEM来识别P'中与(NPA0,NPR0)对应的bug,过程中用了上文提到的BugNeighborhoodAnalysis算法,然后使用前向后向分析来发现P'中的Maybe NPAs,Maybe NPRs,ForwardNPRs,目前,还没有计算Backward NPAs。

  使用P'中的NPAs和NPRs 以及(NPA0,NPR0)在P'中的映射,实验中创建出新的空指针bug,联同映射得到的(NPA,NPR)组一起加入“bug 邻域”中,实验中将判断(NPA0,NPR0)的状态“not fixed”,“尝试修复但是不彻底”,“彻底修复”。

  ……

  查看全文请点击下载:http://www.51testing.com/html/02/n-227802.html

  版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号