[发明专利]一种基于程序变更的回归测试用例集构建方法有效
申请号: | 201210219280.6 | 申请日: | 2012-06-29 |
公开(公告)号: | CN102750153A | 公开(公告)日: | 2012-10-24 |
发明(设计)人: | 顾庆;张立久;赵海钢;汤九斌;陈道蓄 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F11/36 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 贺翔 |
地址: | 210000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 程序 变更 回归 测试 用例集 构建 方法 | ||
1.一种基于程序变更的回归测试用例集构建方法,其特征在于包括以下步骤:
1)首先确定目标软件版本相对于历史版本的程序变更;以历史版本为参照,通过比对目标版本和历史版本的软件程序,获得目标版本相对于历史版本程序语句的变更情况;标记历史版本程序中每一个直接变更的语句行 ,以下简称变更语句;
2)根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集;然后设定每个语句行的变更权重;据此可构成语句权重向量,其中为历史版本中包含的语句行总数;
3)收集现有测试用例对历史版本程序语句的覆盖信息,构建语句覆盖矩阵;根据覆盖信息将测试用例划分为变更覆盖集和一般覆盖集;中测试用例至少覆盖一个变更语句,而中测试用例没有覆盖变更语句;
4)根据语句覆盖矩阵分别约简划分后的变更覆盖集和一般覆盖集;
5)根据语句覆盖矩阵分别对变更覆盖集和一般覆盖集中的测试用例排序;最后按先后顺序合并两个集合,其中变更覆盖集中的测试用例优先于一般覆盖集中的测试用例;构成目标版本的回归测试用例集。
2.根据权利要求1所述的基于程序变更的回归测试用例集构建方法,其特征在于,上述步骤1)中,标记历史版本程序中每一个直接变更的语句行的依据是:被修改、被删除或者在其后添加了新的语句行。
3.根据权利要求1或2所述的基于程序变更的回归测试用例集构建方法,其特征在于,上述步骤2)中,根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集的过程为:针对每一个标记的语句行,分两个阶段进行处理:第一阶段将置入变更语句集;第二阶段分析所处的程序上下文,分以下3种情况迭代处理:
I)位于分支语句块中,确定所对应的分支判定语句,将对应的分支判定语句设定为标记的语句行;
II)位于循环语句块中,确定所对应的循环判定语句,将对应的循环判定语句设定为标记的语句行;
III)位于异常处理语句块中,确定所对应的异常处理起始语句,将对应的异常处理起始语句设定为标记的语句行;
对重复标记的语句行只处理一次;处理完所有标记的语句行后,剩余没有处理过的都被置入非变更语句集。
4.根据权利要求1或2所述的基于程序变更的回归测试用例集构建方法,其特征在于,上述步骤2)中,变更权重的设定基于程序修改带来的风险,具体设定为-6;非变更语句集中的语句行变更权重设定为0。
5.根据权利要求1或2所述的基于程序变更的回归测试用例集构建方法,其特征在于,上述步骤4)中,根据语句覆盖矩阵约简变更覆盖集和一般覆盖集中测试用例的过程为:首先针对变更覆盖集,采用多重覆盖约简方法MHATS完成测试用例约简,语句权重向量作为MHATS算法的多重覆盖表,获得约简后的变更覆盖集;要求对每个语句行,中至少有个测试用例覆盖;或者中包含所有原始中覆盖的测试用例;然后针对一般覆盖集,采用单覆盖约简方法HGS完成测试用例约简,获得约简后的一般覆盖集;要求中测试用例与原始中测试用例覆盖相同数量的语句行。
6.根据权利要求1或2所述的基于程序变更的回归测试用例集构建方法,其特征在于,上述步骤5)中,根据语句覆盖矩阵分别对变更覆盖集和一般覆盖集中的测试用例排序的过程为:首先应用语句权重向量修改语句覆盖矩阵,获得带权语句覆盖矩阵;针对矩阵中的每一个单元,矩阵中对应单元按以下公式计算:
其中为1表示测试用例覆盖语句行,0表示未覆盖,为语句行的变更权重;
根据矩阵,采用带反馈的测试用例排序方法分别对约简后的变更覆盖集和约简后的一般覆盖集中的测试用例排序。
7.根据权利要求6所述的基于程序变更的回归测试用例集构建方法,其特征在于,带反馈的测试用例排序方法的过程为:给定带权语句覆盖矩阵,令初始的排序集合为空集;每次选择相对价值最高的测试用例加入集合;
为计算相对价值,定义覆盖系数向量,其中系数由以下公式计算:
未覆盖语句行指中尚未有测试用例覆盖;测试用例的相对价值按以下公式计算,其中为语句行总数:
每次更新后要重新计算向量;如果剩余的测试用例中,最高的相对价值已经为0,表示中测试用例已经覆盖了所有可能覆盖的语句行;此时将中已经排好序的测试用例移出,将重置为空集,再重新计算剩余测试用例的相对价值;重复上述操作,直至集合中所有测试用例都被排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210219280.6/1.html,转载请声明来源钻瓜专利网。