基于关联规则的软件多故障定位技术

第1页共18页基于关联规则的软件多故障定位技术摘要:为了提高软件故障的定位效率,提出一种基于关联规则的软件多故障定位技术。通过使用聚类方法把失败的测试用例分成针对特定错误的聚类,使用基于交叉表的软件故障定位方法发现软件中的故障,在定位过程中使用关联规则挖掘高可疑代码与软件故障的关系,提高故障定位的效率,最后对Siemens用例集和Tarantula方法进行对比。实验表明基于关联规则的软件多故障定位技术在软件多故障定位方面效率优于Tarantula方法。关键词:关联规则;多故障定位;提高定位效率;聚类方法:TN911?34文献标识码:A:1004?373X(2015)12?0039?050引言第2页共18页随着软件产品的发展,软件规模以及软件复杂度的不断增大使得软件调试过程越发困难。软件故障定位是调试过程中成本最高同时耗时最长的一项[1]。在软件自动化调试领域,出现了许多相应的方法,Jones和Harrold提出了Tarantula[2]方法,该方法通过对比程序实体在失败测试用例和成功测试用例之间的差别,计算程序实体的怀疑度实现故障定位。C.Liu提出了SOBER[3]方法,该方法使用谓词在测试用例中取值为真对程序故障出现的影响实现故障定位。其他还有一些定位方法[4?6]比如CBI、NNQ、SBI等。这些方法大多使用程序实体的覆盖信息来计算每一个程序实体的可疑度,然后通过可疑度排名列表去发现软件故障。这些方法虽然在单故障的情况下取得了很好的效果,但是在多故障的情况下,效果都不是很理想。他们大多都采用one?bug?at?a?time的方式实现多故障的定位,但是这种方式弊端明显:时间效率低,同时需要重复测试。Jones和Harrold提出了一种并行调试技术[7],通过对可能导致同一个故障的测试用例进行分类,然后结合成功执行的测试用例第3页共18页构造用以测试每个故障的测试用例子集,来同时定位不同的软件故障。但现有的基于覆盖率的错误定位(CoverageBasedFaultLocalization,CBFL)方法只是统计代码语句或代码基本块的覆盖率,并没有考虑程序执行的数据依赖和控制依赖,因此会出现定位不准确的情况。结合以上两点,本文将在并行的基础上使用关联规则挖掘软件故障。1相关工作许多该领域的学者提出了不同的软件故障定位技术。这些技术大多通过收集语句或者谓词等程序实体的覆盖信息,然后对收集到的信息利用相应的怀疑度公式计算每条语句的怀疑度,据此找出软件中的故障。本文也使用这种方式,同时,结合关联规则的思想来提高软件的多故障定位效率。1.1基于交叉表的故障定位技术Eric提出了一种基于交叉表的技术进行软件故障定位的方法[4,8]。该方法的主要思路是:针对每个测试用例的每一条语句构第4页共18页造一个交叉表,通过该交叉表收集语句的覆盖信息和执行结果。然后,利用每条语句的统计信息计算该语句的怀疑度(Suspiciousness)。通过这种方式,所有的语句都可以根据计算出的怀疑度来降序排名。语句的怀疑度越高,该语句越会被优先检查,可以通过排名依次检查语句,直至发现软件的故障。该技术通过引用一个名为Chi?squaretest的假设测试来检查测试用例执行结果和语句覆盖信息之间的依赖关系。Chi?square的数据通过交叉表中的数据计算而来,同时与Chi?square中的关键值进行对比,决定这个假设(即执行结果独立于与语句的覆盖信息)被接受还是被抛弃,然后,通过计算语句的怀疑度数值[ζ]进行故障定位。[ζ]的数值越大表示语句的怀疑度越高,怀疑度越高则会被优先检查。基于交叉表的软件故障定位技术通过计算语句的怀疑度来预测语句包含故障的可能性。其实验结果表明基于交叉表的软件故障定位技术相比于绝大多数的软件故障定位技术,如Tarantula、Liblit05、SOBER等方法,效果更好。第5页共18页1.2并行调试通常状况下,一个软件出现失效状况下,软件中会包含多个故障,同时软件调试的人员也会不止一个,因此可以通过并行的方式实现软件故障的定位工作,相比于one?bug?at?a?time的方式,并行故障定位会更加高效,通过构造并行工作流,不同的工作人员可以专注于不同的软件故障。要实现并行的软件故障定位,最重要的问题是如何对任务进行划分和分派,这就需要一种可以把错误的测试用例集从新分配成...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?