回归测试用例集的优化方法和系统技术方案

技术编号:16969476 阅读:28 留言:0更新日期:2018-01-07 06:29
本公开提供了一种回归测试用例集的优化方法和系统,维护单元对原始回归测试用例集进行初步维护,得到基准回归测试用例集,约减单元对基准回归测试用例集进行约减,得到最小回归测试用例子集,排序单元对最小回归测试用例子集中测试用例的执行顺序进行排序。本公开既能发现新功能中隐藏的缺陷,又能发现因程序变动给其他旧功能带来的缺陷;在保证测试需求全覆盖的前提下,对回归测试用例集规模进行了缩减,降低了测试的成本;能够处理大规模的回归测试用例集,摒弃了严重依赖于测试人员的经验、无法处理大规模回归测试用例集的缺点;不需要维护程序代码与测试用例之间的关系,更具有可操作性和实用性。

【技术实现步骤摘要】
回归测试用例集的优化方法和系统
本公开涉及软件测试
,尤其涉及一种回归测试用例集的优化方法和系统。
技术介绍
随着商业银行科技系统的日益复杂与不断迭代,回归测试成了商业银行软件演化过程中频繁进行且成本开销巨大的一项工作。为了应对规模巨大的回归测试用例集,一些银行开始使用一些回归测试用例集优化技术对回归测试过程进行优化,尽可能压缩测试数据集的规模,提高回归测试的工作效率。回归测试用例集优化需要达到以下目标:1、优化后的回归测试用例集应该能够覆盖到所有的待测业务需求,不能存在某项业务需求没有被测试用例覆盖到的情况。2、在能覆盖所有待测业务需求的前提下,对原始回归测试用例集的规模应该作进一步的缩减,如只执行原始回归测试用例集中60%的用例。3、优化后回归测试用例集中用例的排序应该有助于提升缺陷的揭示效率,多数的缺陷应该在用例执行的前期就被发现。目前已有的回归测试用例集优化技术主要包括四种:1)零回归测试:针对缺陷的修复,只做确认测试;针对新增功能,只运行所有新增加的功能测试用例,用来判断是否正确实现了新的功能。2)完全回归测试:该策略不考虑变更影响,重新运行所有的旧测试用例和新添加测试用例,这是一种安全的回归测试策略,遗漏缺陷的风险最小,但是测试成本很高。3)基于风险选择的回归测试:基于一定的风险标准来从测试用例库中选择回归测试包。首先运行最重要的、关键的和可疑的测试,而跳过那些次要的、例外的测试用例或那些功能相对很稳定的模块。因为运行那些次要用例即便发现缺陷,这些缺陷的严重性也较低。4)基于代码相依性分析的回归测试:当测试者对修改的局部化有足够的信心时,可以代码相依性分析,将回归测试局限于被改变的模块和它的接口上。申请人发现上述现有技术存在如下缺陷:(1)零回归测试,无法揭示回归测试版本中因新功能的增加而新引入其他模块的缺陷。(2)完全回归测试,在处理商业银行这样大规模的回归测试集时,测试时间长、测试成本高。(3)基于风险选择的回归测试,商业银行科技系统复杂,回归测试用例集规模大,单个人很难凭经验来判别某个测试用例是否需要进行回归测试,对测试人员专业水平要求高,且缺乏定量的客观标准。(4)基于代码相依性的回归测试,需要记录测试用例库与代码之间的关系表,几乎所有的商业银行都没有记录这两者之间的关系,且测试用例库与代码之间的关系在不断的动态变化中,整理起来需要投入大量的人力,在商业银行的工作实际下还很难实现。
技术实现思路
(一)要解决的技术问题为了解决上述技术问题的至少其中之一,本公开提供了一种回归测试用例集的优化方法和系统。(二)技术方案本公开提供了一种回归测试用例集的优化系统,包括:维护单元,用于对原始回归测试用例集进行初步维护,得到基准回归测试用例集;约减单元,用于对所述基准回归测试用例集进行约减,得到最小回归测试用例子集;排序单元,用于对所述最小回归测试用例子集中测试用例的执行顺序进行排序,实现对回归测试用例集的全面优化。在本公开的一些实施例中,所述维护单元采用ADCL模型对所述原始回归测试用例集进行增添、删除、改进、联接操作,以对所述原始回归测试用例集进行初步维护。在本公开的一些实施例中,所述维护单元包括:增添子单元,用于增加测试需求与测试用例;删除子单元,用于删除过时的测试需求和测试用例;改进子单元,用于改进有变动的测试需求和测试用例;联接子单元,用于检查增加和改进的测试用例与测试需求的对应关系,并将覆盖测试需求的测试用例与该测试需求进行联接。在本公开的一些实施例中,所述约减单元采用0-1整数规划模型,采用智能优化遗传算法对所述基准回归测试用例集进行约减。在本公开的一些实施例中,所述约减单元用于提取测试用例执行时间信息、测试需求信息、用例需求覆盖关系信息;删除冗余测试用例和冗余测试需求;对测试用例进行0-1基因编码,并通过将个体的基因全部置为1产生初始化的个体与种群;对当前种群中的每个个体xi计算其以时间代价为目标的适应度fi,并应用轮盘赌策略选择算子产生中间代;对中间代种群应用交叉算子,以1/L作为变异概率应用变异算子,产生新一代种群;对新一代种群基因解码并计算新一代种群中的每个个体xi+1以时间代价为目标的适应度fi+1,选择适应度数值最高的个体作为约减的最终结果,产生最小回归测试用例子集。在本公开的一些实施例中,所述排序单元包括:分组子单元,用于根据排序因素将最小回归测试用例子集中的测试用例进行分组;排序子单元,用于根据排序因素确定各组中测试用例的优先级度量。在本公开的一些实施例中,所述分组子单元用于将对应缺陷状态为未关闭的测试用例、执行状态为Failed、N/A、NotCompleted、NoRun、Blocked的测试用例分入首选组;将新增加或改进的测试用例分入优先组;将非新增加和改进且对应缺陷已关闭的测试用例分入一般组;将非新增加和改进且从未对应任何缺陷的测试用例分入待测组。在本公开的一些实施例中,当测试用例对应的缺陷个数大于零时,所述排序子单元用于根据测试用例对应的缺陷个数、对应的测试需求个数、对应的缺陷严重程度以及对应的测试需求优先级计算首选组中测试用例的优先级度量;当测试用例对应的缺陷个数等于零且测试用例执行状态为Failed时,所述排序子单元用于根据测试用例对应的测试需求个数、对应的测试需求优先级计算首选组中测试用例的优先级度量。在本公开的一些实施例中,所述排序子单元用于根据测试用例所在模块所有缺陷的严重程度、测试用例所在模块的测试用例总数、测试用例所在模块的所有缺陷个数、测试用例对应的测试需求个数、以及测试用例对应的测试需求优先级计算优先组中测试用例的优先级度量。在本公开的一些实施例中,所述排序子单元用于根据测试用例对应的缺陷个数、对应的测试需求个数、对应的缺陷严重程度以及对应的测试需求优先级计算一般组中测试用例的优先级度量。根据本公开的另一方面,提供了一种回归测试用例集的优化方法,包括:对原始回归测试用例集进行初步维护,得到基准回归测试用例集;对所述基准回归测试用例集进行约减,得到最小回归测试用例子集;以及对所述最小回归测试用例子集中测试用例的执行顺序进行排序,实现对回归测试用例集的全面优化。在本公开的一些实施例中,所述对原始回归测试用例集进行初步维护包括:采用ADCL模型对所述原始回归测试用例集进行增添、删除、改进、联接操作。在本公开的一些实施例中,所述增添操作包括:增加测试需求与测试用例;所述删除操作包括:删除过时的测试需求和测试用例;所述改进操作包括:改进有变动的测试需求和测试用例;所述联接操作包括:检查增加和改进的测试用例与测试需求的对应关系,并将覆盖测试需求的测试用例与该测试需求进行联接。在本公开的一些实施例中,所述对基准回归测试用例集进行约减的步骤采用0-1整数规划模型,采用智能优化遗传算法对基准回归测试用例集进行约减。在本公开的一些实施例中,所述对基准回归测试用例集进行约减包括:提取步骤:提取测试用例执行时间信息、测试需求信息、用例需求覆盖关系信息;删除步骤:删除冗余测试用例以及冗余测试需求;初始化步骤:对测试用例进行0-1基因编码,并通过将个体的基因全部置为1产生初始化的个体与种群;中间代产生步骤:对当前种群中的每个个体xi计算其以时间代价本文档来自技高网
...
回归测试用例集的优化方法和系统

【技术保护点】
一种回归测试用例集的优化系统,包括:维护单元,用于对原始回归测试用例集进行初步维护,得到基准回归测试用例集;约减单元,用于对所述基准回归测试用例集进行约减,得到最小回归测试用例子集;排序单元,用于对所述最小回归测试用例子集中测试用例的执行顺序进行排序,实现对回归测试用例集的全面优化。

【技术特征摘要】
2017.08.22 CN 20171072673411.一种回归测试用例集的优化系统,包括:维护单元,用于对原始回归测试用例集进行初步维护,得到基准回归测试用例集;约减单元,用于对所述基准回归测试用例集进行约减,得到最小回归测试用例子集;排序单元,用于对所述最小回归测试用例子集中测试用例的执行顺序进行排序,实现对回归测试用例集的全面优化。2.如权利要求1所述的优化系统,所述维护单元采用ADCL模型对所述原始回归测试用例集进行增添、删除、改进、联接操作,以对所述原始回归测试用例集进行初步维护。3.如权利要求2所述的优化系统,所述维护单元包括:增添子单元,用于增加测试需求与测试用例;删除子单元,用于删除过时的测试需求和测试用例;改进子单元,用于改进有变动的测试需求和测试用例;联接子单元,用于检查增加和改进的测试用例与测试需求的对应关系,并将覆盖测试需求的测试用例与该测试需求进行联接。4.如权利要求1所述的优化系统,所述约减单元采用0-1整数规划模型,采用智能优化遗传算法对所述基准回归测试用例集进行约减。5.如权利要求4所述的优化系统,所述约减单元用于提取测试用例执行时间信息、测试需求信息、用例需求覆盖关系信息;删除冗余测试用例和冗余测试需求;对测试用例进行0-1基因编码,并通过将个体的基因全部置为1产生初始化的个体与种群;对当前种群中的每个个体xi计算其以时间代价为目标的适应度fi,并应用轮盘赌策略选择算子产生中间代;对中间代种群应用交叉算子,以1/L作为变异概率应用变异算子,产生新一代种群;对新一代种群基因解码并计算新一代种群中的每个个体xi+1以时间代价为目标的适应度fi+1,选择适应度数值最高的个体作为约减的最终结果,产生最小回归测试用例子集。6.如权利要求1所述的优化系统,所述排序单元包括:分组子单元,用于根据排序因素将最小回归测试用例子集中的测试用例进行分组;排序子单元,用于根据排序因素确定各组中测试用例的优先级度量。7.如权利要求6所述的优化系统,所述分组子单元用于将对应缺陷状态为未关闭的测试用例、执行状态为Failed、N/A、NotCompleted、NoRun、Blocked的测试用例分入首选组;将新增加或改进的测试用例分入优先组;将非新增加和改进且对应缺陷已关闭的测试用例分入一般组;将非新增加和改进且从未对应任何缺陷的测试用例分入待测组。8.如权利要求7所述的优化系统,当测试用例对应的缺陷个数大于零时,所述排序子单元用于根据测试用例对应的缺陷个数、对应的测试需求个数、对应的缺陷严重程度以及对应的测试需求优先级计算首选组中测试用例的优先级度量;当测试用例对应的缺陷个数等于零且测试用例执行状态为Failed时,所述排序子单元用于根据测试用例对应的测试需求个数、对应的测试需求优先级计算首选组中测试用例的优先级度量。9.如权利要求7所述的优化系统,所述排序子单元用于根据测试用例所在模块所有缺陷的严重程度、测试用例所在模块的测试用例总数、测试用例所在模块的所有缺陷个数、测试用例对应的测试需求个数、以及测试用例对应的测试需求优先级计算优先组中测试用例的优先级度量。10.如权利要求7所述的优化系统,所述排序子单元用于根据测试用例对应的缺陷个数、对应的测试需求个数、对应的缺陷严重程度以及对应的测试需求优先级计算一般组中测试用例的优先级度量。11.一...

【专利技术属性】
技术研发人员:李政孙志斌刘荆涛王冲付佳刘之强苏杭高进李琳何一帆王博黄杰赵娜
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1