单元测试用例目标代码生成方法、装置、电子设备及计算机可读介质制造方法及图纸

技术编号:35674019 阅读:12 留言:0更新日期:2022-11-23 14:10
本发明专利技术涉及软件工程技术领域,尤其涉及一种单元测试用例目标代码生成方法、装置、电子设备及计算机可读介质。该生成方法包括:从源码提取测试项目中的当前实现类;根据实现类确定实现方法以及入参类型;将入参类型发送到数据工具框架,生成接口入参类型随机测试数据;将上述接口入参类型随机测试数据填充到模板引擎,生成单元测试用例目标代码,作为输出文本输出。本发明专利技术实施例的方法避免了繁琐且重复的单元测试代码编写工作,省去了重复性的编码劳动,节约了测试项目的开发成本,并且由于避免了由于人工设计案例数据无法体现测试数据的随机性导致的数据遗漏问题的测试场景,提高了单元测试用例目标代码的生成效率和准确性。了单元测试用例目标代码的生成效率和准确性。了单元测试用例目标代码的生成效率和准确性。

【技术实现步骤摘要】
单元测试用例目标代码生成方法、装置、电子设备及计算机可读介质


[0001]本专利技术涉及软件工程
,尤其涉及一种单元测试用例目标代码生成方法、装置、电子设备及计算机可读介质。

技术介绍

[0002]随着计算机技术的发展及业务的需求,越来越多的应用程序系统过于庞大,为保证业务系统代码质量,需要进行单元测试。
[0003]在实现本专利技术的过程中,本专利技术的专利技术人发现:繁琐且重复的单元测试代码会大大增加研发人员的工作量,编写单元测试用例及测试的接口测试用例相当耗时,每个接口和方法用例的写法大同小异,重复性工作繁多,人工设计案例数据无法体现测试数据的随机性,导致因数据遗漏问题的测试场景。
[0004]针对上述的问题,目前尚未提出有效的解决方案,迫切需要一种可以基于源码实现自动生成单元测试用例目标代码的方法来解决上述问题。

技术实现思路

[0005]鉴于此,为了解决上述技术问题或者至少部分地解决上述技术问题,本专利技术实施例提供了一种可以基于源码实现自动生成单元测试用例目标代码和单元测试用例数据的方法、装置、设备及计算机可读介质。
[0006]第一方面,本专利技术实施例提供一种单元测试用例目标代码生成方法,包括:
[0007]从源码提取测试项目中的当前实现类;
[0008]根据所述当前实现类确定该当前实现类的实现方法以及该实现方法的入参类型;
[0009]将所述当前实现类的所述实现方法的所述入参类型发送到数据工具框架,生成接口入参类型随机测试数据;<br/>[0010]将上述接口入参类型随机测试数据填充到模板引擎,生成单元测试用例目标代码,作为输出文本输出。
[0011]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,如果所述测试项目的实现类的数目为n,则设计数器的初始值等于n,执行计数减1,对所述当前实现类的下一实现类生成下一接口入参类型随机测试数据,直到计数器的计数值等于0,其中,n是大于等于2的正整数。
[0012]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,如果1个以上所述当前实现类使用相同的实现方法,则使用1个抽象父类来封装上述1个以上所述当前实现类。
[0013]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,如果所述测试项目的抽象父类的数目为m,则设计数器的初始值等于m,执行计数减1,对所述当前实现类所在抽象父类的下一抽象父类生成下一接口入参类型随机测试数据,直到计数器的计数值等
于0,其中,m是大于等于2的正整数。
[0014]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,所述将所述当前实现类的所述实现方法的所述入参类型发送到数据工具框架,生成接口入参类型随机测试数据,包括:
[0015]对所述当前实现类配置读取文件路径,生成配置文件;
[0016]将所述配置文件转换成对象,生成接口入参类型随机测试数据。
[0017]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,
[0018]所述读取文件路径至少包括测试类路径、包名。
[0019]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,所述测试类路径是用于保存所述测试项目的指定路径。
[0020]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,所述从源码提取当前实现类,包括:
[0021]确定与所述当前实现类对应的查询键;
[0022]利用所述查询键从所述源码提取所述当前实现类。
[0023]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,所述将所述当前实现类的所述实现方法的所述入参类型发送到数据工具框架,生成接口入参类型随机测试数据,还包括:
[0024]将所述测试项目对应的源标识符追加到数据工具框架,生成接口入参类型随机测试数据。
[0025]优选地,在本专利技术实施例的单元测试用例目标代码生成方法中,所述输出文本至少包括网页、电子邮件、配置文件文本、程序代码中的一种。
[0026]第二方面,本专利技术实施例提供一种单元测试用例目标代码生成装置,包括:
[0027]实现类提取部件,从源码提取测试项目中的当前实现类;
[0028]实现方法的入参类型确定部件,根据所述当前实现类确定该当前实现类的实现方法以及该实现方法的入参类型;
[0029]接口入参类型随机测试数据生成部件,将所述当前实现类的所述实现方法的所述入参类型发送到数据工具框架,生成接口入参类型随机测试数据;
[0030]单元测试用例目标代码生成部件,将上述接口入参类型随机测试数据填充到模板引擎,生成单元测试用例目标代码,作为输出文本输出。
[0031]第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其中,所述处理器执行所述计算机程序时实现本专利技术实施例所述的方法的步骤。
[0032]第四方面,本专利技术实施例提供一种计算机可读介质,存储有处理器可执行的非易失的程序代码,其中,所述程序代码使所述处理器执行本专利技术实施例所述的方法。
[0033]本专利技术实施例提供的技术方案具有如下有益效果:
[0034]通过根据所述当前实现类确定该当前实现类的实现方法以及该实现方法的入参类型;将所述当前实现类的所述实现方法的所述入参类型发送到数据工具框架,生成接口入参类型随机测试数据;将上述接口入参类型随机测试数据填充到模板引擎,生成单元测
试用例目标代码,不再需要研发人员参与繁琐且重复的单元测试代码编写工作,省去了重复性的编码劳动,节约了测试项目的开发成本,并且由于避免了由于人工设计案例数据无法体现测试数据的随机性导致的数据遗漏问题的测试场景,提高了单元测试用例目标代码的生成效率和准确性。
附图说明
[0035]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0036]为了更清楚地说明本专利技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为根据本专利技术实施例提供的一种可选的单元测试用例目标代码生成方法的硬件环境示意图;
[0038]图2为根据本专利技术实施例提供的一种可选的单元测试用例目标代码生成方法的流程图;
[0039]图3为根据本专利技术实施例提供的一种可选的单元测试用例目标代码生成方法的结构图;
[0040]图4为根据本专利技术实施例提供的一种可选的单元测试用例目标代码生成装置的框图;
[0041]图5为本专利技术实施例提供的一种可选的电子设备的结构示意图。
具体实施方式
[0042]为使本专利技术实施例的目的、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种单元测试用例目标代码生成方法,包括:从源码提取测试项目中的当前实现类;根据所述当前实现类确定该当前实现类的实现方法以及该实现方法的入参类型;将所述当前实现类的所述实现方法的所述入参类型发送到数据工具框架,生成接口入参类型随机测试数据;将上述接口入参类型随机测试数据填充到模板引擎,生成单元测试用例目标代码,作为输出文本输出。2.根据权利要求1所述的单元测试用例目标代码生成方法,其中,如果所述测试项目的实现类的数目为n,则设计数器的初始值等于n,执行计数减1,对所述当前实现类的下一实现类生成下一接口入参类型随机测试数据,直到计数器的计数值等于0,其中,n是大于等于2的正整数。3.根据权利要求1所述的单元测试用例目标代码生成方法,其中,如果1个以上所述当前实现类使用相同的实现方法,则使用1个抽象父类来封装上述1个以上所述当前实现类。4.根据权利要求3所述的单元测试用例目标代码生成方法,其中,如果所述测试项目的抽象父类的数目为m,则设计数器的初始值等于m,执行计数减1,对所述当前实现类所在抽象父类的下一抽象父类生成下一接口入参类型随机测试数据,直到计数器的计数值等于0,其中,m是大于等于2的正整数。5.根据权利要求1所述的单元测试用例目标代码生成方法,其中,所述将所述当前实现类的所述实现方法的所述入参类型发送到数据工具框架,生成接口入参类型随机测试数据,包括:对所述当前实现类配置读取文件路径,生成配置文件;将所述配置文件转换成对象,生成接口入参类型随机测试数据。6.根据权利要求5所述的单元测试用例目标代码生成方法,其中,所述读取文件路径至少包括测试类路径、包名。7.根据权利要求6所述的单元测试用例目标代码生成方法,其中,所述...

【专利技术属性】
技术研发人员:黄帅孟凡清谷浩邓国振
申请(专利权)人:京东科技控股股份有限公司
类型:发明
国别省市:

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

1