[发明专利]一种基于软件组合测试的回归测试用例重用方法有效
| 申请号: | 201410852192.9 | 申请日: | 2014-12-31 |
| 公开(公告)号: | CN104461908A | 公开(公告)日: | 2015-03-25 |
| 发明(设计)人: | 张艳丽;张智强;严俊 | 申请(专利权)人: | 中国科学院软件研究所 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 成金玉;孟卜娟 |
| 地址: | 100190 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 软件 组合 测试 回归 重用 方法 | ||
技术领域
本发明涉及一种回归测试用例重用方法,特别是涉及一种利用软件组合测试在待测系统中生成测试用例的回归测试用例重用的方法。
背景技术
软件测试用于发现软件系统中的缺陷,是软件系统开发中的重要环节之一。当今软件系统规模越来越大,结构日趋复杂,使得软件更容易产生缺陷。而软件中的缺陷往往会导致各种各样的问题,如软件崩溃、财产损失甚至危及人身安全。软件组合测试是一种非常有效的软件测试方法,该方法用于测试多参数系统。在组合测试中,被测系统被看作一个黑盒,其行为受到多个参数(或称因素)相互作用的影响,这些参数可能是系统的配置、内部事件、外部输入等。这个多参数模型称为组合测试模型。D.Kuhn等人的研究表明,在某些系统中,大多数的软件错误是少数参数(一般不超过3个)取特定组合时引起的,这种错误称作组合错误。因此,如果能够测试到所有这样少数参数之间的组合,则被测系统中的大多数组合错误都可以被检测到。在软件组合测试中,通常使用覆盖数组作为测试用例集。覆盖数组是一个矩阵,其中的每一行对应一条测试用例,每一列对应一个参数。给定覆盖强度t,一个t强度的覆盖数组能够保证对于任意t列,该数组覆盖这t列所对应参数之间的所有组合。与此同时,由于覆盖数组精简的特性,其行数较少。因此组合测试可以采用较少数量的测试用例,达到较高的错误覆盖率。
组合测试用例集(覆盖数组)的生成技术有很多,其中一种是一维扩展策略。该策略先计算所有需要覆盖的组合,然后逐条生成测试用例,直到所有组合都被覆盖。每条测试用例的生成准则为覆盖尽量多未被覆盖的组合。
传统的组合测试方法是假设待测软件多参数模型中的参数之间是互相独立的。但在实际应用中,软件各因素间往往存在一定的约束关系,从而使这些因素中某些取值的组合受到一定限制。在生成组合测试用例集的过程当中,每条测试用例都必须满足参数间的约束,否则该测试用例无效,无法被执行,其覆盖到的参数组合也无法被测试到。在处理参数约束的过程中,经常会用到约束求解技术。约束求解技术以一组约束为输入,尝试生成一个满足所有约束的解(可行解)。若存在可行解,则这组约束可满足,并返回找到的可行解;若不存在可行解,则这组约束不可满足,也就说明这些约束之间存在矛盾。因此,在约束存在时,一维扩展策略中生成的每条测试用例都应当满足所有约束,并覆盖尽量多未被覆盖的组合。已有的工具或算法,如AETG-SAT、PICT等,处理约束的方法多分为两层:在高层对参数进行赋值,以覆盖尽量多未被覆盖的组合;当需要判断当前的赋值是否满足约束时,调用低层的求解器进行判断。而也有一类方法如Cascade,将整条新测试用例生成转化为待约束的优化问题进行求解。
在实际应用组合测试时,往往由于待测系统的测试需求发生变更,或待测系统本身的变更,导致参数化模型需要进行相应的变更。常见的变更类型有:增加或删除参数,增加或删除参数取值,增加、删除或变更约束。在参数化模型发生改变后,需要重新生成组合测试用例集,来达到新模型下的覆盖要求。这个过程称为组合测试的回归测试。若针对新的参数化模型重新生成测试用例集,往往新的测试用例集和旧模型下的测试用例集差异很大,重新测试的代价相对较高。而事实上,旧模型下的测试用例集,往往有很大一部分可以在新模型下进行重用,从而降低重新测试的代价。大多数已有的组合测试测试用例生成的流程都是在模型给定的情况下进行,并没有考虑模型变更后,如何进行回归组合测试的问题。
本发明涉及的一种回归测试用例重用方法的目标是在参数化模型发生变更后,在满足新模型下覆盖要求的前提下,尽可能重用原模型下已有的测试用例,以减小新增的测试开销。
发明内容
本发明针对的是组合回归测试问题,提出了一种基于软件组合测试的回归测试用例重用方法,能够在满足新模型下覆盖要求的前提下,尽可能重用原模型下已有的测试用例,以减小新增的测试开销。
为了实现本发明的目的,采用的技术方案概述如下:一种基于软件组合测试的回归测试用例重用方法,包括以下步骤:
(1)计算软件组合测试模型变更后的新模型下所有需要覆盖的参数组合;
(2)对于已有的每条测试用例尝试重用,若能重用,则将其转换为新模型下的测试用例,加入新的测试用例集,并从需要覆盖的参数组合中去掉该测试用例覆盖的参数组合,否则该测试用例不可重用,将该测试用例抛弃;
(3)经过步骤(2)之后,若还有需要覆盖的参数组合,则按照传统组合测试测试生成方法补充新的测试用例,覆盖剩余需要覆盖的参数组合,并加入新的测试用例集;
(4)最终得到的测试用例集就是重用了已有测试用例的回归组合测试用例集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410852192.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息处理设备与半导体设备
- 下一篇:一种应用测试方法和系统





