[发明专利]一种基于程序变更的回归测试用例集构建方法有效
申请号: | 201210219280.6 | 申请日: | 2012-06-29 |
公开(公告)号: | CN102750153A | 公开(公告)日: | 2012-10-24 |
发明(设计)人: | 顾庆;张立久;赵海钢;汤九斌;陈道蓄 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F11/36 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 贺翔 |
地址: | 210000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 程序 变更 回归 测试 用例集 构建 方法 | ||
技术领域
本发明涉及软件版本更新过程中的回归测试用例集构建,特别涉及存在大量测试用例,以及这些测试用例对历史版本程序的覆盖数据,如何根据目标版本的程序变更,选择测试用例并对测试用例排序,从而在有限的测试时间和资源下,有针对性和高效率地完成目标版本的回归测试。
背景技术
回归测试用例集构建是软件回归测试过程中的关键步骤,是降低回归测试成本,提高回归测试效率的重要环节。当前软件系统件在开发和部署时,经常因为漏洞修复、功能增强、需求变更、软件运行环境迁移等原因不断修改和升级。为了保障软件质量,在软件被修改后,必须重新对软件执行回归测试。回归测试的目标包括两方面:其一是软件被修改部分可以按照预期进行运作;其二是软件未修改部分仍然可以正确执行。为完成高效率的回归测试,研究者提出一整套回归测试相关的工程技术,包括:测试用例集维护、测试用例选择、测试用例演化、测试用例优先化、测试用例集约简等。本发明方法涉及其中的测试用例选择和优先化技术。
软件回归测试面临的主要问题是高昂的测试成本开销和时间消耗,构建回归测试用例集的目标是在有限的测试资源(包括成本和时间)下,达到最高的测试效率,即最大程度地及时发现软件中的缺陷。现有的回归测试用例构建方法和技术一般忽略目标版本的程序变更,对所有的测试覆盖数据等同对待,没有考虑程序变更与测试需求之间的联系,往往难以达成高效率的回归测试。
软件工程实践不断表明,在软件修改和升级过程中,程序员在对软件做功能增强或漏洞修复等工作时,对现有程序的修改往往更容易引入或触发新的缺陷;如果在测试过程中针对性地瞄准这些位置,则可以减少回归测试用例集规模,大大提高测试效率,有效降低测试成本和时间。但是现有的回归测试方法中尚没有对这些方面给予足够的重视,也没有给出更好的解决方法。
发明内容
本发明的主要目的是考虑到传统回归测试方法没有充分利用目标版本的程序变更数据,提出一种基于程序变更的回归测试用例集构建方法,增加回归测试的针对性,完成测试用例排序,在有限的测试资源下提高回归测试的效率。
为实现本发明所述目的,本发明采用如下的步骤:
1)首先确定目标软件版本相对于历史版本的程序变更;以历史版本为参照,通过比对目标版本和历史版本的软件程序,获得目标版本相对于历史版本程序语句的变更情况;标记历史版本程序中每一个直接变更的语句行 ,以下简称变更语句;
2)根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集;然后设定每个语句行的变更权重;据此可构成语句权重向量,其中为历史版本中包含的语句行总数;
3)收集现有测试用例对历史版本程序语句的覆盖信息,构建语句覆盖矩阵;根据覆盖信息将测试用例划分为变更覆盖集和一般覆盖集;中测试用例至少覆盖一个变更语句,而中测试用例没有覆盖变更语句;
4)根据语句覆盖矩阵分别约简划分后的变更覆盖集和一般覆盖集;
5)根据语句覆盖矩阵分别对变更覆盖集和一般覆盖集中的测试用例排序;最后按先后顺序合并两个集合,其中变更覆盖集中的测试用例优先于一般覆盖集中的测试用例;构成目标版本的回归测试用例集。
上述步骤1)中,标记历史版本程序中每一个直接变更的语句行的依据是:被修改、被删除或者在其后添加了新的语句行。
上述步骤2)中,根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集的过程为:针对每一个标记的语句行,分两个阶段进行处理:第一阶段将置入变更语句集;第二阶段分析所处的程序上下文,分以下3种情况迭代处理:
I)位于分支语句块中,确定所对应的分支判定语句,将对应的分支判定语句设定为标记的语句行;
II)位于循环语句块中,确定所对应的循环判定语句,将对应的循环判定语句设定为标记的语句行;
III)位于异常处理语句块中,确定所对应的异常处理起始语句,将对应的异常处理起始语句设定为标记的语句行;
对重复标记的语句行只处理一次;处理完所有标记的语句行后,剩余没有处理过的都被置入非变更语句集。
上述步骤2)中,变更权重的设定基于程序修改带来的风险,具体设定为-6;非变更语句集中的语句行变更权重设定为0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210219280.6/2.html,转载请声明来源钻瓜专利网。