测试用例生成方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:29198712 阅读:15 留言:0更新日期:2021-07-10 00:31
本申请公开了一种测试用例生成方法、装置、计算机设备及存储介质,属于计算机技术领域。所述方法包括:获取被测源代码;根据被测源代码,查询第一测试代码;当查询到第一测试代码时,根据程序结构接口PSI获取第一函数列表,第一函数列表是第一测试代码已覆盖的函数列表;根据被测源代码以及第一函数列表,获取第二函数列表,第二函数列表是被测源代码的函数除去第一函数列表中包含的函数后的剩余函数组成的函数列表;生成第二函数列表对应的测试用例。本申请通过生成该第二函数列表对应的测试用例,实现了在已有第一测试代码的基础上,增量生成被测源代码的测试用例,提高了对被测源代码生成测试用例时的效率。源代码生成测试用例时的效率。源代码生成测试用例时的效率。

【技术实现步骤摘要】
测试用例生成方法、装置、计算机设备及存储介质


[0001]本申请涉及计算机
,特别涉及一种测试用例生成方法、装置、计算机设备及存储介质。

技术介绍

[0002]随着计算机
的发展,代码设计人员可以在计算机设备中可以创建各种各样的源代码,并在计算机设备中运行创建的源代码。
[0003]目前,计算机设备中可以运行有不同的编程语言环境,比如,Java语言环境、Kotlin语言环境、C++语言环境等等,代码设计人员可以在不同的编程语言环境中编写不同的程序代码,并在计算机设备中运行。例如,代码设计人员在Java语言环境中编写了一套数学算法代码,计算机设备可以通过运行该数学算法代码,实现数学计算等功能。相关技术中,当代码设计人员需要检查自身编写的数学算法代码(又可称为被测源代码)中各个环节是否可以存在问题时,可以利用计算机设备提供的生成测试用例的插件,生成对该数学算法代码进行检测的测试用例,从而实现对该数学算法代码的检查。
[0004]对于上述相关技术中的方案,由于该测试用例生成的方式单一,每次需要根据被测源代码重新生成,导致测试用例的生成效率低等问题。

技术实现思路

[0005]本申请实施例提供了一种测试用例生成方法、装置、计算机设备及存储介质,可以提高计算机设备对被测源代码生成测试用例的效率。所述技术方案如下:
[0006]一方面,本申请实施例提供了一种测试用例生成方法,所述方法包括:
[0007]获取被测源代码;
[0008]根据所述被测源代码,查询第一测试代码,所述第一测试代码是上一次对所述被测源代码进行测试时生成的各个测试用例对应的测试代码;
[0009]当查询到所述第一测试代码时,根据程序结构接口PSI获取第一函数列表,所述第一函数列表是所述第一测试代码已覆盖的函数列表;
[0010]根据所述被测源代码以及所述第一函数列表,获取第二函数列表,所述第二函数列表是所述被测源代码的函数除去所述第一函数列表中包含的函数后的剩余函数组成的函数列表;
[0011]生成所述第二函数列表对应的所述测试用例。
[0012]另一方面,本申请实施例提供了一种测试用例生成装置,所述装置包括:
[0013]第一获取模块,用于获取被测源代码;
[0014]代码查询模块,用于根据所述被测源代码,查询第一测试代码,所述第一测试代码是上一次对所述被测源代码进行测试时生成的各个测试用例对应的测试代码;
[0015]第二获取模块,用于当查询到所述第一测试代码时,根据程序结构接口PSI获取第一函数列表,所述第一函数列表是所述第一测试代码已覆盖的函数列表;
[0016]第三获取模块,用于根据所述被测源代码以及所述第一函数列表,获取第二函数列表,所述第二函数列表是所述被测源代码的函数除去所述第一函数列表中包含的函数后的剩余函数组成的函数列表;
[0017]第一生成模块,用于生成所述第二函数列表对应的所述测试用例。
[0018]可选的,所述装置还包括:
[0019]参数获取模块,用于通过所述程序结构接口PSI,获取所述被测源代码的应用参数,所述应用参数包含函数列表methodlist,函数method参数类型以及返回值类型;
[0020]所述第三获取模块,用于根据所述应用参数中包含的函数列表以及所述第一函数列表,获取所述第二函数列表;
[0021]所述第一生成模块,用于根据所述应用参数以及所述第二函数列表中的函数,生成所述第二函数列表对应的所述测试用例。
[0022]可选的,所述根据所述应用参数以及所述第二函数列表中的函数,生成所述第二函数列表对应的所述测试用例,包括:
[0023]对目标函数参数类型进行参数赋值,得到参数值,所述目标函数参数类型是所述应用参数中包含的所述第二函数列表中的函数对应的函数参数类型;
[0024]根据所述参数值以及所述应用参数,生成目标语句,所述目标语句是所述测试用例的代码语句。
[0025]可选的,所述装置还包括:
[0026]名称获取模块,用于当所述目标函数参数类型包含非基础类型时,获取所述目标函数参数类型中第一函数参数类型的类型名称,所述第一函数参数类型是所述目标函数参数类型中任意一个非基础类型的目标函数参数类型;
[0027]定义类查找模块,用于根据所述类型名称查找所述第一函数参数类型的定义类;
[0028]函数获取模块,用于当查找到所述第一函数参数类型的定义类时,获取所述定义类的构造函数;
[0029]参数赋值模块,用于通过初始化所述构造函数对所述第一函数参数类型进行参数赋值。
[0030]可选的,所述装置还包括:
[0031]文件读取模块,用于读取配置文件,所述配置文件包含生成所述测试用例时采用的配置项,所述配置项包含编写作者,测试基类,存放路径,批量生成,源代码路径,自动登录中的至少一种配置项;
[0032]配置项获取模块,用于根据所述配置文件,获取所述配置文件中包含的各个配置项。
[0033]可选的,所述装置还包括:
[0034]文件创建模块,用于当未查询到所述第一测试代码时,按照所述存放路径,创建测试文件,所述测试文件用于存储所述测试用例的代码语句;
[0035]第二生成模块,用于按照所述被测源代码的函数生成所述测试用例。
[0036]可选的,所述第一获取模块,用于当所述配置项包含所述批量生成以及所述源代码路径的配置项,且所述批量生成配置项指示需要批量生成时,获取所述源代码路径下的各个被测源代码。
[0037]又一方面,本申请实施例还提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的测试用例生成方法。
[0038]又一方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的测试用例生成方法。
[0039]本申请实施例提供的技术方案带来的有益效果至少包括:
[0040]本申请通过获取被测源代码;根据被测源代码,查询第一测试代码,第一测试代码是上一次对被测源代码进行测试时生成的各个测试用例对应的测试代码;当查询到第一测试代码时,根据程序结构接口PSI获取第一函数列表,第一函数列表是第一测试代码已覆盖的函数列表;根据被测源代码以及第一函数列表,获取第二函数列表,第二函数列表是被测源代码的函数除去第一函数列表中包含的函数后的剩余函数组成的函数列表;生成第二函数列表对应的测试用例。本申请通过从被测源代码的函数中除去第一函数列表中的函数得到第二函数列表,生成该第二函数列表对应的测试用例,实现了在已有第一测试代码的基础上,增量生成被测源代码的测本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种测试用例生成方法,其特征在于,所述方法包括:获取被测源代码;根据所述被测源代码,查询第一测试代码,所述第一测试代码是上一次对所述被测源代码进行测试时生成的各个测试用例对应的测试代码;当查询到所述第一测试代码时,根据程序结构接口PSI获取第一函数列表,所述第一函数列表是所述第一测试代码已覆盖的函数列表;根据所述被测源代码以及所述第一函数列表,获取第二函数列表,所述第二函数列表是所述被测源代码的函数除去所述第一函数列表中包含的函数后的剩余函数组成的函数列表;生成所述第二函数列表对应的所述测试用例。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过所述程序结构接口PSI,获取所述被测源代码的应用参数,所述应用参数包含函数列表methodlist,函数method参数类型以及返回值类型;所述根据所述被测源代码以及所述第一函数列表,获取第二函数列表,包括:根据所述应用参数中包含的函数列表以及所述第一函数列表,获取所述第二函数列表;所述生成所述第二函数列表对应的所述测试用例,包括:根据所述应用参数以及所述第二函数列表中的函数,生成所述第二函数列表对应的所述测试用例。3.根据权利要求2所述的方法,其特征在于,所述根据所述应用参数以及所述第二函数列表中的函数,生成所述第二函数列表对应的所述测试用例,包括:对目标函数参数类型进行参数赋值,得到参数值,所述目标函数参数类型是所述应用参数中包含的所述第二函数列表中的函数对应的函数参数类型;根据所述参数值以及所述应用参数,生成目标语句,所述目标语句是所述测试用例的代码语句。4.根据权利要求3所述的方法,其特征在于,当所述目标函数参数类型包含非基础类型时,所述方法还包括:获取所述目标函数参数类型中第一函数参数类型的类型名称,所述第一函数参数类型是所述目标函数参数类型中任意一个非基础类型的目标函数参数类型;根据所述类型名称查找所述第一函数参数类型的定义类;当查找到所述第一函数参数类型的定义类时,获取所述定义类的构造函数;通过初始化所述构造函数对所述第一函数参数类型进行参数赋值。5.根据权利要求...

【专利技术属性】
技术研发人员:常瑞超宋秀斯
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1