单元测试案例管理方法、装置及可读存储介质制造方法及图纸

技术编号:34147256 阅读:14 留言:0更新日期:2022-07-14 19:16
本发明专利技术公开了一种单元测试案例管理方法,对于不同类型的断言数据,采用相对应的方法进行断言增强,提高了单元测试案例的有效性;根据预设的案例去重规则对断言增强后的各版本测试案例进行去重,降低了不同版本间测试案例的重复度;通过git merge代码文件合并技术检测不同版本间测试案例的代码文本是否存在冲突,并在获取到存在冲突的版本列表后,通过测试函数名称匹配方式进一步匹配出在远端git上管理的各版本试案例与在本地git上管理的当前版本测试案例中的不同测试函数,然后将匹配到的在远端git上管理的测试函数对应的函数代码段追加到在本地git上管理的测试案例中,实现了对不同版本测试案例的合并。本发明专利技术还提供了一种单元测试案例管理装置及可读存储介质。一种单元测试案例管理装置及可读存储介质。一种单元测试案例管理装置及可读存储介质。

Unit test case management method, device and readable storage medium

【技术实现步骤摘要】
单元测试案例管理方法、装置及可读存储介质


[0001]本专利技术涉及软件测试
,具体涉及一种单元测试案例管理方法、装置及可读存储介质。

技术介绍

[0002]单元测试中的“单元”通俗的说就是指一个实现简单功能的函数。单元测试就是用一组特定的输入(测试案例)测试函数是否功能正常,并且返回了正确的输出。现有技术中,存在许多生成单元测试案例的方法,但若对已生成的单元测试案例缺乏有效的管理,会影响业务软件的交付质量和交付效率。目前,对于已生成的单元测试案例的管理主要存在以下几个难点:1、案例有效性低。单元测试案例需要有明确的断言,而自动生成的单元测试案例,断言可能出现不准确,导致单元测试案例的有效性较低。
[0003]2、案例重复度高。单元测试案例的自动生成方法主要有数据构造和数据录制两种方法,案例对应的函数路径可能重复,大量的重复会导致案例数量呈指数级增长。
[0004]3、案例合并难。在多人对同个单元测试案例进行编码时,可能出现代码文本冲突,比如,对于案例A,有被改动了的两个不同的版本A1、A2,假设A1的第10行编码为c+2=d,而A2中的第10行编码为c

2=d,则A1和A2由于第10行的代码文本冲突在合并时会出现合并冲突,导致案例合并难。

技术实现思路

[0005]本专利技术以提高对单元测试案例管理的有效性,以及提高软件交付质量和交付效率为目的,提供了一种单元测试案例管理方法、装置及可读存储介质。
[0006]为达此目的,本专利技术采用以下技术方案:提供一种单元测试案例管理方法,包括,:步骤S1,对于具有可变类型或数组类型的断言数据的单元测试案例,根据相对应的断言数据增强方法对不同版本的所述单元测试案例进行断言增强;步骤S2,根据预设的案例去重规则对断言增强后的各版本的所述单元测试案例进行去重;步骤S3,使用git merge代码文本合并技术检测去重后的不同版本间的所述单元测试案例的代码文本是否存在冲突,并获取存在冲突的版本列表,然后将在远端git上管理的各版本测试案例中的每个测试函数叠加到在本地git上管理的当前版本的所述单元测试案例中完成对各版本测试案例的合并。
[0007]作为优选,当所述断言数据为可变类型时,步骤S1中,对不同版本的所述单元测试案例进行断言增强的方法包括:步骤A1,判断当前版本的所述单元测试案例断言是否失败,若是,则转入步骤A2;
若否,则终止断言增强流程;步骤A2,将所述断言数据与规则库中的规则进行正则匹配,若匹配成功,则按照匹配到的规则对所述断言数据进行格式清除后转入步骤A3;若匹配失败,则终止断言增强流程;步骤A3,将格式清除后的所述断言数据更新到对应版本的所述单元测试案例中;步骤A4,运行完成数据更新后对应版本的所述单元测试案例,并判断是否断言成功,若是,则判定断言增强成功并记录断言增强成功信息;若否,则判定断言增强失败并记录断言增强失败信息。
[0008]作为优选,所述断言数据包括运行当前版本的所述单元测试案例后,所述测试函数的实际输出结果以及预期输出结果。
[0009]作为优选,步骤S2中,对不同版本的所述单元测试案例进行去重的方法具体包括:步骤C1,运行同个所述测试函数对应的所有版本的所述单元测试案例,以获取所运行的每个版本的的所述单元测试案例对应的代码路径;步骤C2,判断不同版本间的各所述单元测试案例的代码路径是否相同,若相同,则保留代码路径相同的各版本单元测试案例中的任意一个;若不相同,则保留所述单元测试案例的不同版本。
[0010]作为优选,步骤S3中,对各版本的所述单元测试案例进行合并的方法具体包括:步骤D1,获取在本地git上管理的以及在远端git上管理的各个版本的所述单元测试案例分别对应的测试函数名称,然后将在本地git上管理的所述单元测试案例的A1版本对应的各测试函数名称形成为第一数组,将在远端git上管理的所述单元测试案例的每个A2版本对应的各测试函数名称形成为第二数组;步骤D2,对每个所述第二数组与所述第一数组进行测试函数名称匹配,若匹配到不同的测试函数名称,则转入步骤D3;若未匹配到不同的测试函数名称,则过滤掉当前参与匹配的所述第二数组;步骤D3,获取从所述第二数组中匹配到的具有不同名称的测试函数对应的函数代码段;步骤D4,将获取到的所述函数代码段追加到在本地git上管理的所述A1版本的所述单元测试案例中。
[0011]本专利技术还提供了一种单元测试案例管理装置,可实现所述的单元测试案例管理方法,包括:断言增强模块,用于对于具有可变类型或数组类型的断言数据的单元测试案例,根据相对应的断言数据增强方法对不同版本的所述单元测试案例进行断言增强;案例去重模块,连接所述断言增强模块,用于根据预设的案例去重规则对断言增强后的各版本的单元测试案例进行去重;案例合并模块,连接所述案例去重模块,用于使用git merge代码文本合并技术检测去重后的不同版本间的单元测试案例的代码文本是否存在冲突,并获取存在冲突的版本列表,然后将在远端git上管理的各版本测试案例中的每个测试函数叠加到在本地git上管
理的当前版本的单元测试案例中完成对各版本测试案例的合并。
[0012]本专利技术还提供了一种存储有计算机可读指令的可读存储介质,当所述计算机可读指令被处理器执行时,所述处理器执行所述的单元测试案例管理方法。
[0013]本专利技术具有以下有益效果:1、对于不同类型的断言数据,采用相对应的方法进行断言增强,提高了单元测试案例的有效性;2、根据预设的案例去重规则对断言增强后的各版本的单元测试案例进行去重,降低了不同版本间的单元测试案例的重复度;3、通过git merge代码文件合并技术检测不同版本间的单元测试案例的代码文本是否存在冲突,并在获取到存在冲突的版本列表后,通过测试函数名称匹配方式进一步匹配出在远端git上管理的各版本的单元测试案例与在本地git上管理的当前版本的单元测试案例中的不同测试函数,然后将匹配到的在远端git上管理的测试函数对应的函数代码段追加到在本地git上管理的单元测试案例中,实现了对不同版本的单元测试案例的合并。
附图说明
[0014]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1是本专利技术一实施例提供的单元测试案例管理方法的实现步骤图;图2是断言数据为可变类型时,对不同版本的单元测试案例进行断言增强的方法实现步骤图;图3是对不同版本的单元测试案例进行去重的方法步骤图;图4是对各版本的单元测试案例进行合并的方法步骤图;图5是本专利技术一实施例提供的单元测试案例管理装置的结构示意图。
具体实施方式
[0016]下面结合附图并通过具体实施方式来进一步说明本专利技术的技术方案。
[0017]其中,附图仅用于示例性说明,表示的仅是示意图,而非实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种单元测试案例管理方法,其特征在于,包括,:步骤S1,对于具有可变类型或数组类型的断言数据的单元测试案例,根据相对应的断言数据增强方法对不同版本的所述单元测试案例进行断言增强;步骤S2,根据预设的案例去重规则对断言增强后的各版本的所述单元测试案例进行去重;步骤S3,使用git merge代码文本合并技术检测去重后的不同版本间的所述单元测试案例的代码文本是否存在冲突,并获取存在冲突的版本列表,然后将在远端git上管理的各版本测试案例中的每个测试函数叠加到在本地git上管理的当前版本的所述单元测试案例中完成对各版本测试案例的合并。2.根据权利要求1所述的单元测试案例管理方法,其特征在于,当所述断言数据为可变类型时,步骤S1中,对不同版本的所述单元测试案例进行断言增强的方法包括:步骤A1,判断当前版本的所述单元测试案例断言是否失败,若是,则转入步骤A2;若否,则终止断言增强流程;步骤A2,将所述断言数据与规则库中的规则进行正则匹配,若匹配成功,则按照匹配到的规则对所述断言数据进行格式清除后转入步骤A3;若匹配失败,则终止断言增强流程;步骤A3,将格式清除后的所述断言数据更新到对应版本的所述单元测试案例中;步骤A4,运行完成数据更新后对应版本的所述单元测试案例,并判断是否断言成功,若是,则判定断言增强成功并记录断言增强成功信息;若否,则判定断言增强失败并记录断言增强失败信息。3.根据权利要求1所述的单元测试案例的管理方法,其特征在于,所述断言数据包括运行当前版本的所述单元测试案例后,所述测试函数的实际输出结果以及预期输出结果。4.根据权利要求1所述的单元测试案例管理方法,其特征在于,步骤S2中,对不同版本的所述单元测试案例进行去重的方法具体包括:步骤C1,运行同个所述测试函数对应的所有版本的所述单元测试案例,以获取所运行的每个版本的所述单元测试案例对应的代码路径;步骤C2,判断不同版本间的各所述单元测试案例的代码路径是否相同,若相同,则保留代码路径相同的各版本单元测...

【专利技术属性】
技术研发人员:陈鹏坤吴平福
申请(专利权)人:杭州优诗科技有限公司
类型:发明
国别省市:

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

1