[发明专利]一种回归测试中基于分布的测试用例优先级划分方法无效
申请号: | 201110225316.7 | 申请日: | 2011-08-07 |
公开(公告)号: | CN102253889A | 公开(公告)日: | 2011-11-23 |
发明(设计)人: | 赵志宏;吴堃;陈振宇;房春荣 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京天翼专利代理有限责任公司 32112 | 代理人: | 黄明哲 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 回归 测试 基于 分布 优先级 划分 方法 | ||
技术领域
本发明属于软件测试技术领域,尤其是软件测试中回归测试技术领域,用于基于分布的测试用例优先级技术,一种回归测试中基于分布的测试用例优先级划分方法。
背景技术
对于工业程序,测试用例集通常包含数以千计甚至更多的测试用例。执行全部的测试用例代价昂贵,这种情况对于回归测试尤为明显:随着程序的不断演化,测试用例数目不断增多;在有限的资源限制下,很难重新执行每个测试用例。
测试用例优先级技术旨在解决上述问题。测试用例优先级技术根据一些准则重新排列测试用例被执行的顺序,优先级高的测试用例将被优先执行。本发明主要针对回归测试场景,关注于通用的回归测试情况,即测试用例优先级技术将应用于基础版本而不考虑其上发生的任何代码改变。
测试用例优先级技术的目的是,如果一组测试用例按照特定的顺序执行,那么该组测试用例更容易满足某个目标。理想情况下,测试用例应该按照尽可能早地最大化错误检测能力来排序。但在错误信息未知之前,照此排序是不切实际的。因此,测试用例优先级技术使用代理,尽可能早的最大化代理的某种属性,希望能够尽早最大化错误检测能力。
传统的测试用例优先级技术使用覆盖信息作为代理。它们关注于尽可能早地最大化某种程序元素的覆盖率,如语句、分支、数据流/控制流等的覆盖率,希望以此最大化错误检测能力;这种技术被称为基于覆盖的测试用例优先级技术。常见的基于覆盖的优先级技术包括贪心算法、遗传算法等等。
近几年的学术研究指出,基于覆盖的测试用例优先级技术并不一定能够保证获得高的错误检测能力,更多的研究开始转向基于分布的测试用例优先级技术。基于分布的测试用例优先级技术,根据执行剖面的特征以及执行剖面在剖面空间中的分布,对测试用例进行重新排序。现有的研究集中在使用元素覆盖率作为执行剖面的特征,使用Euclidean Distance、Jaccard Distance等基于集合的距离度量公式作为相异性方程来计算执行剖面的距离。但是,使用元素覆盖率作为执行剖面的特征会忽略对顺序敏感错误的检测。一些错误仅当程序按照一定顺序执行时才能被检测出来,这种错误被称为顺序敏感的错误。比如,一些错误可能会存在于循环中,并且仅当循环执行多遍时才能检测出来。这样,一个仅执行一次循环的测试用例和执行多次循环的测试用例在错误检测能力上是不同的,尽管对于这个循环片段,它们具有相同的代码覆盖率。因此,顺序敏感错误仅仅依靠元素覆盖率是很难被检测到的。这说明,现有研究使用元素覆盖率作为执行剖面的特征并不一定能够保证获得高的错误检测能力和快速的错误检测速率。
发明内容
本发明要解决的问题是:现有的基于分布的测试用例优先级技术使用元素覆盖率作为执行剖面的特征,并不一定能够保证获得高的错误检测速率,需要提高测试用例优先级技术的错误检测速率。
本发明的技术方案为:一种回归测试中基于分布的测试用例优先级划分方法,对于回归测试中的测试用例集,依据执行剖面在剖面空间中的分布对测试用例的执行顺序进行优先级排序,优先级高的测试用例将被优先执行。使得执行顺序临近的测试用例尽可能分散在剖面空间中,以尽早最大化错误检测能力,提高错误检测速率,该方法包括以下步骤:
1)获得测试用例集合T中每个测试用例的执行序列信息和覆盖率信息,使用执行序列信息作为测试用例执行剖面的特征,所述执行序列是一序列的字符串,记录了程序元素的执行顺序;
2)利用测试用例的执行序列的编辑距离,来计算测试用例之间的相异性程度,两个执行序列的编辑距离为:通过插入、删除和替换操作,将其中一个执行序列转换为另一个执行序列所需要的操作数;
3)使用最远距离优先farthest-first算法对测试用例的执行顺序进行排序,使得排序后,执行顺序临近的测试用例能够分散在剖面空间中:
最远距离优先算法对测试用例的排序为:后一个测试用例尽可能远离之前的测试用例,以保证执行顺序临近的测试用例尽可能的分散,其过程是:首先选择第一个测试用例,该测试用例拥有最大的元素覆盖率,然后它迭代选择下一个测试用例,直到所有的测试用例都被选择,选择时,将所有未被排序的测试用例构造成一个候选集合,对其中的每个候选测试用例,分别计算其与已经挑选的测试用例集合中每一个测试用例之间的距离,也就是相异性程度,将其中最小的距离作为该候选测试用例与已被选择的测试用例集合之间的距离;最后,选择候选集合中距离已经被选择的测试用例集合最远的一个测试用例,由测试用例的选择顺序得到测试优先级排序,选择顺序越前,优先级越高;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110225316.7/2.html,转载请声明来源钻瓜专利网。