[发明专利]一种基于动态基本块的缺陷定位测试用例约简方法无效
申请号: | 201110413590.7 | 申请日: | 2011-12-13 |
公开(公告)号: | CN102521131A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 陈林;马倩;卢红敏;徐宝文 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京天翼专利代理有限责任公司 32112 | 代理人: | 黄明哲 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 基本 缺陷 定位 测试 用例约简 方法 | ||
技术领域
本发明属于软件测试技术领域,涉及软件测试结果的验证及缺陷定位技术,主要应用于测试输入的产生和测试用例的执行可以自动完成,但测试结果需要人工比对的场景下,为一种基于动态基本块的缺陷定位测试用例约简方法。
背景技术
基于测试执行的语句覆盖的缺陷定位技术通过运行测试用例集来获取程序的动态执行信息,根据语句的覆盖情况和用例的执行结果计算各条语句的可疑度,具有高可疑度的语句优先被检查。其中,最具有代表性的是Agrawal等的削片方法,Renieris和Reiss的最近邻方法,Jones和Harrold等提出的Tarantula方法。
研究表明这些基于覆盖信息的缺陷定位技术可以有效地减少程序中需要检查的语句数,从而减少了缺陷定位的工作量。然而,基于覆盖信息的缺陷定位技术要求测试用例集具有很高的语句覆盖率,虽然现有的测试用例生成工具可以自动生成高覆盖率的测试输入,但是这些测试输入对应的输出结果是未知的。人工判断所有的输出结果对测试人员来说是及其困难且不现实的。而且,判断测试输入的执行结果正确与否,是测试领域的难题:测试预言问题。
这个问题的存在严重影响了基于覆盖信息的缺陷定位技术在实际中的应用,带来了极大的负担。考虑到用测试用例生成工具自动生成的测试输入集存在很大的冗余,研究人员提出对测试输入进行约简,采用一些策略从测试用例集中挑选出部分用例组成一个子集。测试人员只需检查这个子集的测试输出结果,然后在这个子集上应用基于覆盖信息的缺陷定位技术即可。
Yu Y和Jones J等研究了测试用例集的约简对缺陷定位效果的影响,他们的实验表明,在测试用例约简和缺陷定位效果间存在一个折中,一般来说,现有的测试用例约简策略降低了缺陷定位的效果。Hao Dan等人提出了一种包含三种策略(下面分别称为S1,S2,S3)的测试输入约简方法(Hao D,Xie T,Zhang L,et al.Test input reduction for result inspection to facilitate fault localization.Journal of Automated Software Engineering,2010.5~31.),实验证明他们的方法可以帮助开发人员选择出测试输入的一个小的子集,检查这个子集中测试输入对应的输出结果并在其覆盖信息基础上进行缺陷定位,仍然可以获得有效的缺陷定位效果。
Baudry B等人的研究表明,在基于语句覆盖信息的缺陷定位技术中,缺陷定位算法可以识别的最小单元为动态基本块,位于同一个动态基本块中的两条语句将被赋予相同的可疑度。因此,可以利用动态基本块覆盖来进行测试用例约简。动态基本块的基本含义为:假设P为待测试的程序,TS为测试用例集,一个动态基本块DBB(dynamic basic block)是程序P中被TS中相同测试用例覆盖的语句的集合。位于同一个动态基本块中的语句在覆盖矩阵中具有相同的行,它们被测试用例集中相同的测试用例所覆盖,也就是说,测试用例集中任意一条测试用例要么执行了这个块中全部语句,要么没有执行块中任何一条语句。
发明内容
本发明所要解决的技术问题是:现有的基于语句覆盖的缺陷定位方法需要检查测试用例执行结果,耗费大量人力,如果对测试用例进行约简,充分利用语句覆盖信息来帮助挑选用于缺陷定位的测试用例,可以节约成本,约简的测试用例集要保证和原有的用例集具有相同或相近的缺陷定位效果。
本发明的技术方案为:一种基于动态基本块的缺陷定位测试用例约简方法,在基于测试执行的语句覆盖信息的缺陷定位技术中,缺陷定位算法可以识别的最小单元为动态基本块,根据测试用例的执行路径构建语句覆盖矩阵,由语句覆盖矩阵得到动态基本块集合,根据动态基本块集合将每条测试用例表示成以动态基本块为单位的向量,将语句覆盖矩阵转换为动态基本块覆盖矩阵,对其中需要人工检查结果的测试用例集进行约简:采用最大划分策略MDS或均匀划分策略EDS挑选测试用例,并判断所挑选的测试用例是否能继续对当前已划分出的动态基本块做划分,如果能,则保留已挑选的测试用例,继续挑选余下的测试用例,如果不能,则将已经挑选的所有测试用例构成约简后的测试用例集,约简后的测试用例集用于缺陷定位。
2、根据权利要求1所述的一种基于动态基本块的缺陷定位测试用例约简方法,其特征是包括以下步骤:
1)对待测试程序P执行测试用例集TS,TS为待约简的初始测试用例集,根据测试用例执行路径收集语句覆盖信息,构建语句覆盖矩阵;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110413590.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高效节能余热回收装置用波纹板
- 下一篇:一种治疗中风的药物及其制备方法