本发明专利技术公开了一种基于程序变更的回归测试用例集构建方法,其步骤为:(1)确定目标软件版本相对于历史版本的程序变更;(2)将历史版本的程序语句划分为变更语句集和非变更语句集,同时设定变更权重;(3)根据历史覆盖信息划分测试用例集;(4)约简划分后的变更覆盖集和一般覆盖集;(5)对变更覆盖集和一般覆盖集中的测试用例排序,同时合并两个集合,构成目标版本的回归测试用例集。本发明专利技术可广泛应用于大型软件系统在更新换代过程中的自动化测试和回归测试,充分利用历史测试信息和目标版本的程序变更数据,构建的回归测试用例集具有较强的针对性;能够在有限的测试时间和成本下完成高效率的软件测试。
【技术实现步骤摘要】
本专利技术涉及软件版本更新过程中的回归测试用例集构建,特别涉及存在大量测试用例,以及这些测试用例对历史版本程序的覆盖数据,如何根据目标版本的程序变更,选择测试用例并对测试用例排序,从而在有限的测试时间和资源下,有针对性和高效率地完成目标版本的回归测试。
技术介绍
回归测试用例集构建是软件回归测试过程中的关键步骤,是降低回归测试成本,提高回归测试效率的重要环节。当前软件系统件在开发和部署时,经常因为漏洞修复、功能增强、需求变更、软件运行环境迁移等原因不断修改和升级。为了保障软件质量,在软件被修改后,必须重新对软件执行回归测试。回归测试的目标包括两方面其一是软件被修改部分可以按照预期进行运作;其二是软件未修改部分仍然可以正确执行。为完成高效率的回归测试,研究者提出一整套回归测试相关的工程技术,包括测试用例集维护、测试用例选择、测试用例演化、测试用例优先化、测试用例集约简等。本专利技术方法涉及其中的测试用例选择和优先化技术。软件回归测试面临的主要问题是高昂的测试成本开销和时间消耗,构建回归测试用例集的目标是在有限的测试资源(包括成本和时间)下,达到最高的测试效率,即最大程度地及时发现软件中的缺陷。现有的回归测试用例构建方法和技术一般忽略目标版本的程序变更,对所有的测试覆盖数据等同对待,没有考虑程序变更与测试需求之间的联系,往往难以达成高效率的回归测试。软件工程实践不断表明,在软件修改和升级过程中,程序员在对软件做功能增强或漏洞修复等工作时,对现有程序的修改往往更容易引入或触发新的缺陷;如果在测试过程中针对性地瞄准这些位置,则可以减少回归测试用例集规模,大大提高测试效率,有效降低测试成本和时间。但是现有的回归测试方法中尚没有对这些方面给予足够的重视,也没有给出更好的解决方法。
技术实现思路
本专利技术的主要目的是考虑到传统回归测试方法没有充分利用目标版本的程序变更数据,提出,增加回归测试的针对性,完成测试用例排序,在有限的测试资源下提高回归测试的效率。为实现本专利技术所述目的,本专利技术采用如下的步骤 I)首先确定目标软件版本相对于历史版本的程序变更;以历史版本为参照,通过比对目标版本和历史版本的软件程序,获得目标版本相对于历史版本程序语句的变更情况;标记历史版本程序中每一个直接变更的语句行、Ww,以下简称变更语句; 2)根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集;然后设定每个语句行的变更权重w ;据此可构成语句权重向量W。二其中Ii为历史版本中包含的语句行总数; 3)收集现有测试用例对历史版本程序语句的覆盖信息,构建语句覆盖矩阵;根据覆盖信息将测试用例划分为变更覆盖集T 和一般覆盖集匕....中测试用例至少覆盖一个变更语句,而^V中测试用例没有覆盖变更语句; 4)根据语句覆盖矩阵分别约简划分后的变更覆盖集和一般覆盖集; 5)根据语句覆盖矩阵分别对变更覆盖集和一般覆盖集中的测试用例排序;最后按先后顺序合并两个集合,其中变更覆盖集中的测试用例优先于一般覆盖集中的测试用例;构成目标版本的回归测试用例集。上述步骤I)中,标记历史版本程序中每一个直接变更的语句行的依据是 4 被修改、被删除或者在其后添加了新的语句行。上述步骤2)中,根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集的过程为针对每一个标记的语句行分两个阶段进行处理第一阶段将置入变更语句集;第二阶段分析所处的程序上下文,分以下3种情况迭代处理 I)stm位于分支语句块中,确定所对应的分支判定语句,将对应的分支判定语句设定为标记的语句行; II)位于循环语句块中,确定所对应的循环判定语句,将对应的循环判定语句设定为标记的语句行; IIDWw位于异常处理语句块中,确定所对应的异常处理起始语句,将对应的异常处理起始语句设定为标记的语句行; 对重复标记的语句行只处理一次;处理完所有标记的语句行后,剩余没有处理过的 都被置入非变更语句集夂》.。上述步骤2)中,变更权重的设定基于程序修改带来的风险,具体设定为W = 2 -6 ;非变更语句集中的语句行变更权重设定为O。上述步骤4)中,根据语句覆盖矩阵约简变更覆盖集和一般覆盖集中测试用例的过程为首先针对变更覆盖集,采用多重覆盖约简方法MHATS完成测试用例约简,语句 权重向量作为MHATS算法的多重覆盖表,获得约简后的变更覆盖集Cw ;要求对每个语句行Wwi', H中至少有个测试用例覆盖;或者TL中包含所有原始+1;切中覆盖地";的测试用例;然后针对一般覆盖集,采用单覆盖约简方法HGS完成测试用例约简,获得约简后的一般覆盖集M,.,.;要求^中测试用例与原始I二.中测试用例覆盖相同数量的语句行。上述步骤5)中,根据语句覆盖矩阵分别对变更覆盖集和一般覆盖集中的测试用例排序的过程为首先应用语句权重向量Wif修改语句覆盖矩阵Cof.%获得带权语句覆盖矩阵;针对矩阵(W中的每一个单元勺,矩阵中对应单元按以下公式计算权利要求1.,其特征在于包括以下步骤 1)首先确定目标软件版本相对于历史版本的程序变更;以历史版本为参照,通过比对目标版本和历史版本的软件程序,获得目标版本相对于历史版本程序语句的变更情况;标记历史版本程序中每一个直接变更的语句行 ,以下简称变更语句; 2)根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集;然后设定每个语句行的变更权重W ;据此可构成语句权重向量Wif .二 >1.$2.....的,},其中11为历史版本中包含的语句行总数; 3)收集现有测试用例对历史版本程序语句的覆盖信息,构建语句覆盖矩阵rw;根据覆盖信息将测试用例划分为变更覆盖集TAf和一般覆盖集I二. %中测试用例至少覆盖一个变更语句,而:/二.中测试用例没有覆盖变更语句; 4)根据语句覆盖矩阵分别约简划分后的变更覆盖集和一般覆盖集; 5)根据语句覆盖矩阵分别对变更覆盖集和一般覆盖集中的测试用例排序;最后按先后顺序合并两个集合,其中变更覆盖集中的测试用例优先于一般覆盖集中的测试用例;构成目标版本的回归测试用例集。2.根据权利要求I所述的基于程序变更的回归测试用例集构建方法,其特征在于,上述步骤I)中,标记历史版本程序中每一个直接变更的语句行的依据是被修改、被删除或者在其后添加了新的语句行。3.根据权利要求I或2所述的基于程序变更的回归测试用例集构建方法,其特征在于,上述步骤2)中,根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集的过程为针对每一个标记的语句行分两个阶段进行处理第一阶段将.4 置入变更语句集.Sw ;第二阶段分析dm所处的程序上下文,分以下3种情况迭代处理 I)位于分支语句块中,确定所对应的分支判定语句,将对应的分支判定语句设定为标记的语句行; II)Ww位于循环语句块中,确定所对应的循环判定语句,将对应的循环判定语句设定为标记的语句行; III)位于异常处理语句块中,确定所对应的异常处理起始语句,将对应的异常处理起始语句设定为标记的语句行; 对重复标记的语句行只处理一次;处理完所有标记的语句行后,剩余没有处理过的 都被置入非变更语句集戈…。4.根据权利要求I或2所述的基于程序变更的回归测试用例集构建方法,其特征在于,上述步骤2)中本文档来自技高网...
【技术保护点】
一种基于程序变更的回归测试用例集构建方法,其特征在于包括以下步骤:1)首先确定目标软件版本相对于历史版本的程序变更;以历史版本为参照,通过比对目标版本和历史版本的软件程序,获得目标版本相对于历史版本程序语句的变更情况;标记历史版本程序中每一个直接变更的语句行???????????????????????????????????????????????,以下简称变更语句;2)根据程序变更将历史版本的程序语句划分为变更语句集和非变更语句集;然后设定每个语句行的变更权重;据此可构成语句权重向量,其中为历史版本中包含的语句行总数;3)收集现有测试用例对历史版本程序语句的覆盖信息,构建语句覆盖矩阵;根据覆盖信息将测试用例划分为变更覆盖集和一般覆盖集;中测试用例至少覆盖一个变更语句,而中测试用例没有覆盖变更语句;4)根据语句覆盖矩阵分别约简划分后的变更覆盖集和一般覆盖集;5)根据语句覆盖矩阵分别对变更覆盖集和一般覆盖集中的测试用例排序;最后按先后顺序合并两个集合,其中变更覆盖集中的测试用例优先于一般覆盖集中的测试用例;构成目标版本的回归测试用例集。2012102192806100001dest_path_image002.jpg,2012102192806100001dest_path_image004.jpg,2012102192806100001dest_path_image006.jpg,2012102192806100001dest_path_image008.jpg,2012102192806100001dest_path_image010.jpg,2012102192806100001dest_path_image012.jpg,2012102192806100001dest_path_image014.jpg,263531dest_path_image012.jpg,180671dest_path_image014.jpg...
【技术特征摘要】
【专利技术属性】
技术研发人员:顾庆,张立久,赵海钢,汤九斌,陈道蓄,
申请(专利权)人:南京大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。