[发明专利]一种基于聚类分析的回归测试用例选择方法有效
申请号: | 201010212473.X | 申请日: | 2010-06-29 |
公开(公告)号: | CN101866317A | 公开(公告)日: | 2010-10-20 |
发明(设计)人: | 赵志宏;章宸;陈振宇;严莎莉 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京天翼专利代理有限责任公司 32112 | 代理人: | 黄明哲 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 聚类分析 回归 测试 选择 方法 | ||
技术领域
本发明属于计算机软件测试技术领域,涉及回归测试中的测试用例选择技术和软件测试中的程序行为聚类分析技术,用于提高回归测试的效率并使测试用例具备较高的错误检测能力,具体为一种基于聚类分析的回归测试用例选择方法。
背景技术
随着软件版本的变迁,程序被不断的修改,在修改的过程中可能会在程序的原有功能里引入新的Bug,回归测试技术重复使用之前已开发的测试用例集来测试程序的原有功能,从而确认程序原有功能的正确性没有被修改所影响。但由于原有的测试用例集规模通常很大,执行其中所有的测试用例会耗费巨大的资源和人力,所以人们提出了很多种可行的技术,试图有效的约简测试用例集以提高回归测试的效率。回归测试用例选择技术(Regression test selection technique)就是其中的一种重要技术。
回归测试用例选择技术基于某种标准来选取符合该标准的测试用例子集,以达到约简测试用例集的目的,并通过标准的约束来保证足够高的错误检测能力。该技术包括多种方法,这些方法都有大致相似的过程:
1.确定新旧两个版本的程序,并使用某种形式表示出程序的相关信息。(源代码、控制流图、数据流图……)
2.基于这些感兴趣的相关信息比较两个版本的程序。
3.识别出两个版本的程序中存在的差别,即修改的地方。
4.选取那些执行路径经过程序修改的测试用例作为候选测试用例集。
回归测试用例选择技术的目的是减少测试用例的数量,但是在约简过程中可能会将实际上能够检测出程序错误的测试用例剔除掉,从而降低了候选测试用例集的错误检测能力。因此,对于回归测试用例选择技术来说,既要能够有效的缩小测试用例集,同时要保证错误检测能力相对于原有的测试用例集不能下降过多,测试用例的数量和错误检测能力这两者的权衡是至关重要的。目前,研究人员提出的各种方法也都对这一问题突出考虑,而有些方法因为没有很好的处理这两者的权衡关系而导致效果不理想。
聚类分析(Cluster analysis)技术是机器学习中数据挖掘技术的一种,是用来分析统计数据的一种实用技术。它被应用于包括商业、地理、生物等诸多领域,处理分析大量数据来刻画类别、组群特征,并从中获得有意义的信息。给定一个可度量的对象集合,聚类分析过程会将这些对象指派到一系列的类簇中去,使得处于同一类簇中的对象在某种意义上是相似的,而处于不同类簇中的对象是不相似的。这种将对象集合分成相似的对象类的过程就称作聚类分析。
现阶段,有研究人员将聚类分析技术用于软件开发后期的确认测试,来识别有代表性的测试用例,减少测试用例数量,提高确认测试的效率并保证足够高的错误检测能力;聚类分析技术也被用于变异测试,识别相似变异体以减少程序变异体的数量,提高变异测试的效率。这些应用都取得了比较好的成果。但是,在回归测试中使用聚类分析技术目前尚未被正式提出,相关成果也非常少。
发明内容
本发明所要解决的技术问题是:现有的回归测试用例选择技术在权衡测试用例数量和错误检测能力这两者上表现不佳,提出一种在回归测试用例选择技术中使用聚类分析的方法,通过对程序行为的深入理解来有效降低测试用例数量并保持足够高的错误检测能力。
本发明的技术方案为:一种基于聚类分析的回归测试用例选择方法,对于新旧两个版本的被测程序,旧版本已经过测试,采用的测试用例集称为原测试用例集,新版本等待进行回归测试,记录原测试用例集的各测试用例在旧版本上的执行覆盖信息作为测试历史信息;比较新旧版本被测程序的相关信息,从原测试用例集选择出覆盖修改位置的测试用例构成初始候选测试用例集,根据选择的测试用例在测试历史信息中提取这些测试用例在旧版本上的执行覆盖信息,形成旧版本被测程序函数的函数执行剖面,所述函数执行剖面显示旧版本被测程序中各个函数关于初始候选测试用例集中每个测试用例的覆盖情况;然后对函数执行剖面进行聚类分析,使初始候选测试用例集中的测试用例按照程序行为或执行情况的相似度分配到不同的类簇中;最后,从每个类簇中选择部分测试用例进行抽样检查,根据检查结果选择某个类簇或者丢弃某个类簇,形成最终候选测试用例集。
函数执行剖面中,程序中的每个函数都对应一个度量,指示该函数关于测试用例的覆盖情况,如果某个函数在某个测试用例的执行过程中被调用了,那么该度量为1,否则该度量为0,全部的度量构成一条剖面记录,每个测试用例都对应一条这样的记录。
聚类分析包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010212473.X/2.html,转载请声明来源钻瓜专利网。