一种测试用例生成方法技术

技术编号:31751992 阅读:24 留言:0更新日期:2022-01-05 16:33
本发明专利技术提供一种测试用例生成方法,包括以下步骤:确定测试参数和测试参数之间的约束关系;转换成禁止关系;获得一个两两覆盖组合对集;按照最优原则选取第一个参数及参数值,将剩下的参数随机排列,按照次优原则选择参数对应的参数值,直至所有的参数都被加入;判断生成的测试用例是否在禁止元组中,若在则舍弃,不再则放入到测试用例候选集中;获得完整的测试用例候选集;在测试用例候选集中确定最优的测试用例,并将其放入到测试用例集中;判断两两覆盖组合对集中的元素是否为空,若为空,则测试用例集完成,若不为空,循环步骤四到八。本发明专利技术实现了对测试空间的等概率覆盖,提高测试的覆盖性和充分性,测试用例的数量减小,节约测试的成本。测试的成本。测试的成本。

【技术实现步骤摘要】
一种测试用例生成方法


[0001]本专利技术属于软件测试
,具体涉及一种测试用例生成方法。

技术介绍

[0002]飞行控制软件算法复杂,影响结果的因素多且复杂,如何在巨大的输入空间中,使所选择的测试输入最大可能的满足测试的覆盖性和充分性,一直以来都是对测试的一个挑战。在常见的软件测试中采用两种方法选择测试的输入,一种方式是采用各个参数及其相互间组合,只要求覆盖,但不能做到等概率覆盖;另外一种方式是采用正交试验设计,该方式依赖于正交表,但正交表构造还存在很多未解决的问题,这给该方法的使用带来一定的限制。

技术实现思路

[0003]本专利技术的目的在于克服现有技术中的不足,提供一种测试用例生成方法。本专利技术方案能够解决上述现有技术中存在的问题之一。
[0004]本专利技术的技术解决方案:
[0005]一种测试用例生成方法,包括以下步骤:
[0006]步骤一,确定测试参数和测试参数之间的约束关系;
[0007]步骤二,根据测试参数之间的约束关系转换成禁止关系形成禁止元组;
[0008]步骤三,将测试参数两两组合,获得一个两两覆盖组合对集uncover,该两两覆盖组合对集中包括所有参数和参数之间参数值的两两组合对;
[0009]步骤四,在两两覆盖组合对集uncover中按照最优原则选取第一个参数及参数值,将剩下的参数随机排列,按照次优原则选择参数对应的参数值,直至所有的参数都被加入,形成一个完整的测试用例;
[0010]步骤五,判断生成的测试用例是否在禁止元组中,若在则舍弃,不再则放入到测试用例候选集中;
[0011]步骤六,循环M次生成完整测试用例和判断是否在禁止元组中的步骤,获得完整的测试用例候选集;
[0012]步骤七,在测试用例候选集中确定最优的测试用例,并将其放入到测试用例集中;
[0013]步骤八,判断两两覆盖组合对集uncover中的元素是否为空,若为空,则测试用例集完成,若两两覆盖组合对集uncover中的元素不为空,进行步骤九;
[0014]步骤九,循环步骤四到步骤八。
[0015]进一步的,所述的最优原则为:其中的参数和参数值在两两覆盖组合对集uncover中出现的次数最多。
[0016]进一步的,所述的次优原则为:假设已经确定了前j个参数f1,f2,...,f
j
上的特征值分别为v1,v2,...,v
j
,现在要确定第j+1个参数f
j+1
上的参数值v,则根据已经确定的参数和参数值来进行选择,即选择的参数值和已确定的参数值v1,v2,...,v
j
之间存在最多的未
被覆盖对,则可以挑选出最优的测试值,作为参数f
j+1
上的参数值v
j+1

[0017]进一步的,所述的最优的测试用例是指覆盖两两覆盖组合对集uncover中组合对集最多的用例。
[0018]进一步的,所述的测试参数之间的约束关系包括禁止关系、蕴含关系、数值约束。
[0019]进一步的,所述的M取值不大于50。
[0020]本专利技术与现有技术相比的有益效果:
[0021](1)本专利技术通过二维组合覆盖表和最优覆盖生成的测试用例,同时根据测试约束,分析测试输入之间的关系,对测试用例进行优化,实现了对测试空间的等概率覆盖,提高了测试的覆盖性和充分性;
[0022](2)本专利技术在保证相同覆盖率的情况下,测试用例的数量减小,极大地节约了测试的成本。
附图说明
[0023]所包括的附图用来提供对本专利技术实施例的进一步的理解,其构成了说明书的一部分,用于例示本专利技术的实施例,并与文字描述一起来阐释本专利技术的原理。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1示出了根据本专利技术实施例提供的一种测试用例生成方法的步骤示意图。
具体实施方式
[0025]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0027]除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本专利技术的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0028]如图1所示,根据本专利技术实施例提供一种测试用例生成方法,包括以下步骤:
[0029]步骤一,确定测试参数和测试参数之间的约束关系;进一步的在一个实施例中,测试参数之间的约束关系包括禁止关系、蕴含关系、数值约束。禁止关系是组合测试中最直接的约束表示方法,一个禁止关系可表示为一个禁止元组,禁止元组用一个τ组合来表示,其指明该τ组合对应的参数取值不能在测试用例中出现。例如,特征1与特征2不能同时取值为True时,这个约束就可以使用禁止元组(True,True,

,

,

,)来表示。
[0030]蕴含关系其使用形如p

q的形式来表示约束,即当p为真时q也应为真。例如,假设存在约束“如果特征1为value1,那么特征2应为vlaue2,则该约束就可表示为特征1=vlaue1

特征2=value2。
[0031]数值约束主要用来刻画不同特征间需要满足的数值关系,这可以使得约束的表示更加灵活。一个数值约束可表示为(f,P
f
),其中是一些特征取值的集合,而f是定义在P
f
上的一个关系。
[0032]步骤二,将测试参数之间的约束关系转本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种测试用例生成方法,其特征在于,包括以下步骤:步骤一,确定测试参数和测试参数之间的约束关系;步骤二,根据测试参数之间的约束关系转换成禁止关系形成禁止元组步骤三,将测试参数两两组合,获得一个两两覆盖组合对集uncover,该两两覆盖组合对集中包括所有参数和参数之间参数值的两两组合对;步骤四,在两两覆盖组合对集uncover中按照最优原则选取第一个参数及参数值,将剩下的参数随机排列,按照次优原则选择参数对应的参数值,直至所有的参数都被加入,形成一个完整的测试用例;步骤五,判断生成的测试用例是否在禁止元组中,若在则舍弃,不再则放入到测试用例候选集中;步骤六,循环M次生成完整测试用例和判断是否在禁止元组中的步骤,获得完整的测试用例候选集;步骤七,在测试用例候选集中确定最优的测试用例,并将其放入到测试用例集中;步骤八,判断两两覆盖组合对集uncover中的元素是否为空,若为空,则测试用例集完成,若两两覆盖组合对集uncover中的元素不为空,进行步骤九;步骤九,循环步骤四到步骤八。2.根据权利要求1所述的一种测试用例生成方法,其特征在于,所述的最优原则为:其中的参数和参数值在两两覆盖组合对集uncover中出现的次数最多。3.根据权利要求1所述的一种测试用例生成方法,其...

【专利技术属性】
技术研发人员:董冬梅吴武华李凌
申请(专利权)人:北京机电工程研究所
类型:发明
国别省市:

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

1