基于影响域路径分析的测试用例确定方法和系统技术方案

技术编号:31927867 阅读:21 留言:0更新日期:2022-01-15 13:14
本发明专利技术涉及一种基于影响域路径分析的测试用例确定方法,包括,对测试程序的语法和控制流程进行分析,提取程序控制流程图的节点;对控制流程图的节点进行压缩,生成路径分支图;建立路径分支图和首轮测试用例集的映射关系;比对首轮测试程序和回归测试程序,生成回归测试的更改模块并进行更改影响域分析,生成回归测试程序的更改路径分支图;从测试用例中选取满足更改路径分支图最大覆盖率指标的最小测试用例集合,作为当前版本的回归测试用例集合。本发明专利技术还提供了测试用例确定系统。本发明专利技术的优点在于:降低回归测试所使用的测试用例的数量,提高回归测试的效率。提高回归测试的效率。提高回归测试的效率。

【技术实现步骤摘要】
基于影响域路径分析的测试用例确定方法和系统


[0001]本专利技术涉及软件测试
,尤其涉及一种基于影响域路径分析的测试用例确定方法和系统。
技术背景
[0002]在软件测试过程中,若首轮全套测试发现软件缺陷,则需对软件进行升级并进行回归测试,若回归测试仍发现软件缺陷还需不断迭代进行回归测试,直至软件无缺陷或软件缺陷在可接收程度的范围内。在回归测试过程中,通常由测试人员分析比对不同版本间的差异,从全套测试用例集中选择执行用例或设计新的测试用例,在此过程中,通过分析每一次软件变更后的影响域,可以在后面的测试中仅对受影响的函数调用路径进行分析,能够节约测试成本,提高效率。目前这一工作主要依靠人工分析,但人工分析的效率不高且测试策略的覆盖性要求难以保证。

技术实现思路

[0003]本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种基于影响域路径分析确定满足最大覆盖率要求的最小测试用例的确定方法和系统。
[0004]本专利技术解决其技术问题所采用的技术方案是:一种基于影响域路径分析的测试用例确定方法,包括,
[0005]对测试程序的语法和控制流程进行分析,提取程序控制流程图的节点;
[0006]对控制流程图的节点进行压缩,生成路径分支图;
[0007]建立路径分支图和首轮测试用例集的映射关系;
[0008]比对首轮测试程序和回归测试程序,生成回归测试的更改模块并进行更改影响域分析,生成回归测试程序的更改路径分支图;
[0009]从测试用例中选取满足更改路径分支图最大覆盖率指标的最小测试用例集合,作为当前版本的回归测试用例集合。
[0010]优选的,所述提取程序控制流程图的节点的方法为,对顺序执行语句进行合并,保留分支语句、跳转语句。
[0011]优选的,所述程序控制流程图表示为有向图G=(N,E,S,T),其中,N为有向图的节点集合,表示程序中的节点语句;E为有向图的边集合,表示程序中节点间的控制流;S为程序起始节点,T为程序的结束节点,
[0012]所述对控制流程图的节点进行压缩的方法为:
[0013]如果边E
i
为节点N
a
到N
b
的有向边,且N
a
的出度为1,Nb的入度为1,则将节点N
a
和N
b
合并为新的节点N
ab
,新节点N
ab
的输入边为N
a
的输入边,输出边为N
b
的输出边;遍历有向图G中的边,直到有向图G中不存在满足合并条件的有向边。
[0014]优选的,所述路径分支图和首轮测试用例集的映射关系包括测试用例和该测试用例执行路径包含的分支节点之间的一对多映射,以及路径分支图中的分支节点和覆盖该分
支节点的测试用例之间的一对多映射。
[0015]优选的,所述生成更改路径分支图的方法为,
[0016]对首轮全套测试程序和回归测试程序进行比对,得到差异代码,在回归测试程序的路径分支图中,覆盖任意差异代码所在节点的路径为更改路径,所有更改路径的集合为所述更改路径分支图,所述回归测试的测试用例完全覆盖所述更改路径分支图。
[0017]优选的,从首轮全套测试用例集合中选取回归测试用例的方法为贪心算法或动态规划算法。
[0018]优选的,所述更改路径分支图的覆盖率指标包括语句覆盖率、分支覆盖率和控制流覆盖率。
[0019]优选的,当存在多个备选测试用例集合时,以满足最大覆盖率指标下限要求的备选测试用例集合作为当前回归测试的测试用例集合,当存在多个备选测试用例集合的覆盖率均满足最大覆盖率指标下限时,以测试用例最少的备选测试用例集合作为当前回归测试的测试用例集合。
[0020]优选的,当不存在满足最大覆盖率指标下限要求的测试用例时,对覆盖率最大的测试用例集合补充新的测试用例,直到其覆盖率不小于最大覆盖率指标下限,以补充后的集合作为当前回归测试的测试用例集合。
[0021]本专利技术还提供了一种基于影响域路径分析的测试用例确定系统,包括,
[0022]节点提取模块:对测试程序的语法和控制流程进行分析,提取程序控制流程图的节点;
[0023]路径分支图生成模块:对控制流程图的节点进行压缩,生成路径分支图;
[0024]映射建立模块:建立路径分支图和首轮测试用例集的映射关系;
[0025]影响域分析模块:比对首轮测试程序和回归测试程序,生成回归测试的更改模块并进行更改影响域分析,生成回归测试程序的更改路径分支图;
[0026]测试用例确定模块:从测试用例中选取满足更改路径分支图最大覆盖率指标的最小测试用例集合,作为当前版本的回归测试用例集合。
[0027]与现有技术相比,本专利技术具有如下的有益效果:
[0028]通过对程序控制流程图的关键节点进行提取和压缩,简化程序处理流程的路径,并基于压缩后的路径和分支节点建立相互的映射关系,从而在确定回归测试的影响域后,快速确定能够覆盖受影响的更改路径分支所包括的分支节点,并根据分支节点确定覆盖受影响的分支节点的最小测试用例集合,从而降低回归测试所使用的测试用例的数量,提高回归测试的效率。
附图说明
[0029]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:
[0030]图1是本专利技术实施例提供的基于影响域路径分析的测试用例确定方法的流程图;
[0031]图2是本专利技术实施例提供的基于影响域路径分析的测试用例确定方法的执行逻辑图;
[0032]图3是本专利技术实施例提供的基于影响域路径分析的测试用例确定系统的示意图。
具体实施方式
[0033]下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进。这些都属于本专利技术的保护范围。
[0034]本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例,能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于影响域路径分析的测试用例确定方法,其特征在于,包括:对测试程序的语法和控制流程进行分析,提取程序控制流程图的节点;对控制流程图的节点进行压缩,生成路径分支图;建立路径分支图和首轮测试用例集的映射关系;比对首轮测试程序和回归测试程序,生成回归测试的更改模块并进行更改影响域分析,生成回归测试程序的更改路径分支图;从测试用例中选取满足更改路径分支图最大覆盖率指标的最小测试用例集合,作为当前版本的回归测试用例集合。2.根据权利要求1所述的基于影响域路径分析的测试用例确定方法,其特征在于,所述提取程序控制流程图的节点的方法为,对顺序执行语句进行合并,保留分支语句、跳转语句。3.根据权利要求2所述的基于影响域路径分析的测试用例确定方法,其特征在于,所述程序控制流程图表示为有向图G=(N,E,S,T),其中,N为有向图的节点集合,表示程序中的节点语句;E为有向图的边集合,表示程序中节点间的控制流;S为程序起始节点,T为程序的结束节点,所述对控制流程图的节点进行压缩的方法为:如果边E
i
为节点N
a
到N
b
的有向边,且N
a
的出度为1,N
b
的入度为1,则将节点N
a
和N
b
合并为新的节点N
ab
,新节点N
ab
的输入边为N
a
的输入边,输出边为N
b
的输出边;遍历有向图G中的边,直到有向图G中不存在满足合并条件的有向边。4.根据权利要求1所述的基于影响域路径分析的测试用例确定方法,其特征在于,所述路径分支图和首轮测试用例集的映射关系包括测试用例和该测试用例执行路径包含的分支节点之间的一对多映射,以及路径分支图中的分支节点和覆盖该分支节点的测试用例之间的一对多映射。5.根据权利要求4...

【专利技术属性】
技术研发人员:魏冬冬代晓倩苏金梅云颖张风玲
申请(专利权)人:上海航天计算机技术研究所
类型:发明
国别省市:

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

1