一种单元测试脚本的生成方法及装置制造方法及图纸

技术编号:30233113 阅读:28 留言:0更新日期:2021-09-29 10:09
本发明专利技术提供一种单元测试脚本的生成方法及装置,可用于金融领域或其他技术领域。所述方法包括:导入单元测试驱动开发的设计案例,所述单元测试驱动开发的设计案例是预先生成的;获取目标源代码,并将所述目标源代码转换为抽象语法树;根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本。所述装置用于执行上述方法。本发明专利技术实施例提供的单元测试脚本的生成方法及装置,提高了单元测试脚本的覆盖率和有效性。提高了单元测试脚本的覆盖率和有效性。提高了单元测试脚本的覆盖率和有效性。

【技术实现步骤摘要】
一种单元测试脚本的生成方法及装置


[0001]本专利技术涉及计算机
,具体涉及一种单元测试脚本的生成方法及装置。

技术介绍

[0002]单元测试驱动开发(Unit Test Driven Development,简称UTDD),是敏捷开发中的一项核心实践和技术,其原理是在开发功能代码之前,先编写单元测试用例代码,具有降低开发者负担和快速反馈等优点。
[0003]现有技术中,单元测试脚本的算法和工具主要基于源代码的解析,采用自然语言处理的方式生成脚本或通过全量模拟(Mock)的方式产出单元测试脚本,并且源代码自动解析出的脚本可读性和可维护性差,若程序较为复杂,往往只能覆盖异常分支,无法覆盖具有价值的业务代码。因此,如何通过UTDD的方式生成单元测试脚本,成为本领域需要解决的重要课题。

技术实现思路

[0004]针对现有技术中的问题,本专利技术实施例提供一种单元测试脚本的生成方法及装置,能够至少部分地解决现有技术中存在的问题。
[0005]一方面,本专利技术提出一种单元测试脚本的生成方法,包括:
[0006]导入单元测试驱动开发的设计案例,所述单元测试驱动开发的设计案例是预先生成的;
[0007]获取目标源代码,并将所述目标源代码转换为抽象语法树;
[0008]根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本。
[0009]进一步地,所述单元测试驱动开发的设计案例采用预设模版对业务功能进行描述,包括至少一个表达式语句;相应地,所述根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本包括:
[0010]为每个表达式语句创建一个对应的方法名,并将每个表达式语句作为对应的方法名的注解。
[0011]进一步地,所述单元测试脚本的生成方法还包括:
[0012]为每个表达式语句对应的方法名补充案例设计描述。
[0013]进一步地,所述将所述目标源代码转换为抽象语法树包括:
[0014]对所述目标源代码的类、方法和成员变量进行解析,获得所述目标源代码的抽象语法树。
[0015]进一步地,所述成员变量包括外部成员变量;相应地,所述根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本包括:
[0016]根据所述外部成员变量生成模拟语句,并声明所述外部成员变量。
[0017]进一步地,所述单元测试脚本的生成方法还包括:
[0018]根据所述单元测试脚本生成单元测试驱动开发复核文档。
[0019]另一方面,本专利技术提供一种单元测试脚本的生成装置,包括:
[0020]导入模块,用于导入单元测试驱动开发的设计案例,所述单元测试驱动开发的设计案例是预先生成的;
[0021]转换模块,用于获取目标源代码,并将所述目标源代码转换为抽象语法树;
[0022]生成模块,用于根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本。
[0023]进一步地,所述单元测试驱动开发的设计案例采用预设模版对业务功能进行描述,包括至少一个表达式语句;相应地,所述生成模块具体用于:
[0024]为每个表达式语句创建一个对应的方法名,并将每个表达式语句作为对应的方法名的注解。
[0025]再一方面,本专利技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述单元测试脚本的生成方法的步骤。
[0026]又一方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述单元测试脚本的生成方法的步骤。
[0027]本专利技术实施例提供的单元测试脚本的生成方法及装置,能够导入预先生成的单元测试驱动开发的设计案例,获取目标源代码,并将目标源代码转换为抽象语法树,根据单元测试驱动开发的设计案例和目标源代码的抽象语法树,生成单元测试脚本,能够覆盖业务功能,提高了单元测试脚本的覆盖率和有效性。
附图说明
[0028]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0029]图1是本专利技术一实施例提供的单元测试脚本的生成方法的流程示意图。
[0030]图2是本专利技术一实施例提供的单元测试脚本的生成装置的结构示意图。
[0031]图3是本专利技术另一实施例提供的单元测试脚本的生成装置的结构示意图。
[0032]图4是本专利技术又一实施例提供的单元测试脚本的生成装置的结构示意图。
[0033]图5是本专利技术一实施例提供的电子设备的实体结构示意图。
具体实施方式
[0034]为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0035]为了便于理解本申请提供的技术方案,下面先对本申请技术方案的研究背景进行简单说明。现有技术基于源代码生成的单元测试脚本,往往只能覆盖异常分支,无法覆盖具
有价值的业务代码,导致覆盖率高有效性低。而本专利技术实施例提供的单元测试脚本的生成方法,基于UTDD的设计案例生成单元测试脚本,使测试能够覆盖业务代码,提高了单元测试脚本的覆盖率和有效性。
[0036]图1是本专利技术一实施例提供的单元测试脚本的生成方法的流程示意图,如图1所示,本专利技术实施例提供的单元测试脚本的生成方法,包括:
[0037]S101、导入单元测试驱动开发的设计案例,所述单元测试驱动开发的设计案例是预先生成的;
[0038]具体地,开发人员在程序设计阶段以UTDD案例的设计方式,对业务需求进行梳理,对业务功能进行描述以完成案例设计,生成UTDD的设计案例并保存。计算机可以导入UTDD的设计案例。其中,在导入UTDD的设计案例时,可以为设计案例的注解添加HTIL标签。本专利技术实施例提供的单元测试脚本的生成方法的执行主体包括但不限于计算机。
[0039]例如,开发人员在程序设计阶段基于等价类、边界值、路径法等方法完成案例设计,案例设计会以UTDD案例的设计的方式进行,完成对业务需求的梳理,可以通过GIVEN

WHEN

THEN的表达式对业务功能进行描述,生成UTDD的设计案例。生成的UTDD的设计案例可以包括GIVEN

WHEN

THEN的表达式语句,以及对应的注解。生成的UTDD的设计案例可以以EXCEL的形式保存,计本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种单元测试脚本的生成方法,其特征在于,包括:导入单元测试驱动开发的设计案例,所述单元测试驱动开发的设计案例是预先生成的;获取目标源代码,并将所述目标源代码转换为抽象语法树;根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本。2.根据权利要求1所述的方法,其特征在于,所述单元测试驱动开发的设计案例采用预设模版对业务功能进行描述,包括至少一个表达式语句;相应地,所述根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本包括:为每个表达式语句创建一个对应的方法名,并将每个表达式语句作为对应的方法名的注解。3.根据权利要求2所述的方法,其特征在于,还包括:为每个表达式语句对应的方法名补充案例设计描述。4.根据权利要求1所述的方法,其特征在于,所述将所述目标源代码转换为抽象语法树包括:对所述目标源代码的类、方法和成员变量进行解析,获得所述目标源代码的抽象语法树。5.根据权利要求4所述的方法,其特征在于,所述成员变量包括外部成员变量;相应地,所述根据所述单元测试驱动开发的设计案例和所述目标源代码的抽象语法树,生成单元测试脚本包括:根据所述外部...

【专利技术属性】
技术研发人员:张健徐海栋王可李亚南
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1