测试用例的生成方法、装置、设备及程序产品制造方法及图纸

技术编号:37376528 阅读:21 留言:0更新日期:2023-04-27 07:19
本公开提供一种测试用例的生成方法、装置、设备及程序产品,涉及测试技术,方案包括:在待测试单元中确定分支语句,获取与待测试单元对应的多个测试用例集合,并执行测试用例集合中包括的多个用例;若测试用例集合中的各测试用例均未命中同一个分支语句,则获取执行该测试用例集合时未命中的分支语句的执行信息,并根据未命中分支语句的执行信息,确定该测试用例集合与未命中的分支语句之间的分支距离;根据各测试用例集合的分支距离,确定用于对待测试单元进行测试的目标测试用例集合。本公开提供的方案中,可以结合未命中的分支语句的执行信息,挑选出更加有机会覆盖待测试单元各个分支语句的测试用例集合,能够更快速的生成目标测试用例集合。标测试用例集合。标测试用例集合。

【技术实现步骤摘要】
测试用例的生成方法、装置、设备及程序产品


[0001]本公开实施例涉及测试技术,尤其涉及一种测试用例的生成方法、装置、设备及程序产品。

技术介绍

[0002]单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,最小单元可以是单个程序、函数或过程等;在对象编程中,最小单元可以是方法,包括基类(超类)、抽象类、或者派生类(子类)的方法。
[0003]为了帮助开发者即时发现代码的问题,往往会通过单元测试的方法对代码进行测试。在通过单元测试的方法对代码进行测试时,需要编写单元测试用例。为了提高用例的生成方式,现有技术中存在基于符号执行和基于搜索的方式生成测试用例的方案。这两种方案的根本目标是相同的,都是为了构造测试用例来尽可能覆盖全部代码。符号执行通过分析代码来获取命中各个分支所需要满足的输入条件,并通过约束求解的方法计算出可以命中所有分支的输入参数集合;基于搜索的方法往往通过不断修改参数的输入,并根据代码的覆盖情况引导参数的方本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种测试用例的生成方法,其特征在于,包括:在待测试单元中确定分支语句,获取与所述待测试单元对应的多个测试用例集合,并执行每个测试用例集合中包括的多个测试用例;针对每一所述测试用例集合,若测试用例集合中的各测试用例均未命中同一个分支语句,则获取执行该测试用例集合时未命中的分支语句的执行信息,并根据未命中分支语句的执行信息,确定该测试用例集合与未命中的分支语句之间的分支距离;所述执行信息用于表征执行该测试用例集合时所述待测试单元中未命中的分支语句的执行次数;根据各所述测试用例集合的分支距离,确定用于对所述待测试单元进行测试的目标测试用例集合。2.根据权利要求1所述的方法,其特征在于,根据未命中分支语句的执行信息,确定该测试用例集合与未命中的分支语句之间的分支距离,包括:针对每一所述测试用例集合,根据未命中分支语句的执行信息,确定测试用例集合执行时未命中分支语句的执行次数;根据未命中分支语句的执行次数确定该测试用例集合与未命中的分支语句之间的分支距离。3.根据权利要求2所述的方法,其特征在于,所述根据未命中分支语句的执行次数确定该测试用例集合与未命中的分支语句之间的分支距离,包括:若所述未命中分支语句的执行次数达到预设次数,则根据所述分支语句中的条件、测试用例集合中各测试用例的实际参数,确定该测试用例集合中各测试用例与未命中分支语句之间的各分支距离;根据各测试用例与未命中分支语句之间的各分支距离,确定该测试用例集合与未命中分支语句之间的分支距离。4.根据权利要求3所述的方法,其特征在于,所述根据所述分支语句中的条件、测试用例集合中各测试用例的实际参数,确定该测试用例集合中各测试用例与未命中分支语句之间的各分支距离,包括:根据未命中分支语句中的条件,确定与所述条件对应的预设的分支距离公式;根据测试用例的实际参数、所述分支距离公式,确定所述测试用例与未命中分支语句之间的分支距离。5.根据权利要求4所述的方法,其特征在于,还包括:根据所述分支语句中的条件生成至少一个动态函数;所述根据测试用例的实际参数、所述分支距离公式,确定所述测试用例与未命中分支语句之间的分支距离,包括:根据所述分支语句的每个动态函数、所述测试用例的实际参数确定所述分支语句的入参;根据所述分支语句的入参、所述分支距离公式,确定所述测试用例与未命中分支语句之间的分支距离。6.根据权利要求3所述的方法,其特征在于,所述根据各测试用例与未命中分支语句之间的各分支距离,确定该测试用例集合与未命中分支语句之间的分支距离,包括:将各测试用例与未命中分支语句之间的分支距离中的最小值,确定为该测试用例集合
与未命中分支语句之间的分支距离。7.根据权利要求2所述的方法,其特征在于,所述根据未命中分支语句的执行次数确定该测试用例集合与未命中的分支语句之间的分支距离,包括:若所述未命中分支语句的执行次数不到预设次数,则确定该测试用例集合与未命中的分支语句之间的分支距离为预设上限值。8.根据权利要求1

7任一项所述的方法,其特征在于,还包括:若执行测试用例集合时,测试用例集合中的任一测试用例命中一个分支语句,则确定所述测试用例集合与命中的该分支语句之间的分支距离为预设下限值。9.根据权利要求1

7任一项所述的方法,其特征在于,所述根据各所述测试用例集合的分支距离,确定用于对所述待测试单元进行测试的目标测试用例集合,包括:若满足迭代终止条件,则根据各测试用例集合与各分支语句之间的分支距离,在各测试用例集合中确定目标测试用例集合;若不满足迭代终止条件,则:根据各测试用例集合与各分支语句之间的分支距离,在所述测试用例集合中确定至少两个可选测试用例集合;根据所述可选测试用例集合生成至少两个子用例集合,并基于所述子用例集合继续执行所述执行各测试用例集合的步骤。10.根据权利要求9所述的方法...

【专利技术属性】
技术研发人员:曹紫光高玉军王思唯杨萍
申请(专利权)人:脸萌有限公司
类型:发明
国别省市:

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

1