[发明专利]一种基于相对冗余测试集约简的软件缺陷定位方法无效
申请号: | 201010206404.8 | 申请日: | 2010-06-23 |
公开(公告)号: | CN101866316A | 公开(公告)日: | 2010-10-20 |
发明(设计)人: | 张鑫;顾庆;庄元;陈道蓄 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210093 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 相对 冗余 测试 集约 软件 缺陷 定位 方法 | ||
技术领域
本发明涉及软件自动化测试中的缺陷定位方法,特别涉及存在大量测试用例的情况下,为了有效降低测试成本,在保持原有语句块覆盖程度的基础上对测试集进行约简;为避免大量测试信息的丢失导致缺陷定位效果的下降,继而通过添加部分冗余测试用例到约简后得到的代表集中来保持或提高缺陷定位效果。
背景技术
随着现代大规模软件版本不断更迭,测试集的规模也变得庞大,软件测试的成本也随之上升。测试集约简技术则被考虑用来解决此类问题,它可以找到原测试集中规模更小的一个子集,且能满足原始的测试需求,如语句块覆盖程度,分支覆盖程度等,从而大大降低了软件测试的成本。
然而传统的测试集约简技术考虑的往往是单一的测试需求,所以当大部分测试用例被约简掉后,附加的有用的测试信息就丢失了。而缺陷定位技术就是一个基于统计的使用所有测试用例的测试信息(包括测试用例通过与否和测试用例的执行轨迹)帮助程序员定位缺陷所在位置的新兴技术。因此,缺陷定位技术会受测试集约简的影响而变得不准确。软件缺陷定位方法目前被大量应用于大型软件系统的集成测试、系统测试、验收测试和用户问题报告分析等阶段和工作中。随着现代大规模软件日益复杂,自动化软件测试的使用越来越广泛。自动化测试能够产生大量的测试用例,并且能够记录测试用例的执行信息,因此在修复缺陷前存在着大量的测试数据可以利用。传统的调试方法只是对未通过的单个测试用例进行缺陷跟踪,这样在自动化测试的环境下一方面很难同时对多个未通过的测试用例进行跟踪,另一方面只考虑未通过的测试用例而忽略了通过的测试用例所能提供的信息。软件缺陷定位方法可以在自动化测试环境下综合利用测试执行信息来定位软件缺陷,提高软件的质量。
基于执行轨迹的软件缺陷定位方法可通过对测试数据进行分析,自动定位软件中存在的缺陷。该方法需要收集和整理测试用例执行信息,通过对执行轨迹进行比对计算代码的被怀疑程度(怀疑率),开发者可以按照怀疑率从大到小的顺序对被怀疑代码进行审查,减少移除缺陷必须审查的代码数量和范围,提高查找缺陷的效率。但已有的方法通常单独考虑通过和未通过的测试用例,并没有对测试用例进行筛选,不适于大型软件系统的缺陷定位。
综上所述,如何有效的约简测试集规模并同时提高或至少保持缺陷定位效果成为软件调试领域的一个热点问题。由于代表集规模往往很小,适当的增加测试用例并不会对测试成本造成太大影响。可以考虑从冗余集中返回部分测试用例来改善语句块覆盖程度的平衡性,从而在不影响测试集约简的前提下,能够保持或提高缺陷定位效果。
发明内容
本发明所要解决的技术问题是针对传统测试集约简算法导致缺陷定位效果下降,提出一种基于相对冗余测试集约简的缺陷定位方法,该方法在保持测试低成本的前提下可以保持或提高缺陷定位的效果。
为实现上所述目的,本发明采用如下的步骤:
1)对源程序进行插桩,执行测试用例,收集测试用例的执行信息,包括执行结果和执行轨迹。
收集和整理测试用例的执行结果并生成执行轨迹,其中执行轨迹可以矩阵的形式表示,每列代表一个测试用例所执行过的语句块情况,1表示执行过,0表示没有执行;每行代表一个语句块被所有测试用例的执行情况;
2)根据各个测试用例对源代码的覆盖情况,对整个测试集进行约简;约简过程为:设整个测试集为T,使用HGS约简算法对所有测试用例进行约简,得到两个测试集合,即代表集REP和冗余集RED;其中冗余集RED又可划分为高度冗余集TIE和候选集CAN,在候选集CAN中选择加入代表集REP的测试用例组成的集合记为关键集KEY,得到新的代表集相对冗余集REL-REP。
根据各个测试用例的代码覆盖情况选择数目尽可能少的测试用例来满足原有的覆盖需求,本发明在该步骤中使用经典的HGS算法进行测试集约简,其原理是根据测试用例的相对重要性并优先保留重要性较高的测试用例,直到达到原测试集的代码覆盖程度。
3)最后根据相对冗余集REL-REP计算语句块的怀疑率,按照其大小对语句块排序生成缺陷定位报告。
根据新得到的代表集中的测试用例的执行结果和执行轨迹计算语句块怀疑率,本发明在该步骤中使用经典的Tarantula方法进行缺陷定位,能够有效利用通过和未通过的测试用例的执行信息取得较好的定位效果。
上述步骤2)中从候选集CAN中选择测试用例的步骤为:根据代表集REP的情况从冗余集RED中选择关键集KEY,其中且|KEY|<<|RED|。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010206404.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种治疗阳萎的中药组合物
- 下一篇:2-氨基-5-溴异烟酸的合成方法