System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件测试,尤其是涉及一种提高测试用例覆盖率的方法、装置、设备和介质。
技术介绍
1、在软件测试中,测试用例有着重要的作用。测试用例(test case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本,最终形成文档。简而言之,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。而覆盖率可以准确评价测试用例,通过覆盖率可以知道测试是否充分以及测试的弱点,有利于代码开发人员设计可以增加覆盖率的测试用例,实现测试质量的提升,且测试用例对代码的覆盖率越高,表明该测试用例的测试准确度更高。
2、相关技术中会获取流量数据,即http请求数据和响应数据等,并从上述流量数据中获取属性名和属性值形成特征向量并聚类,并从聚类结果中筛选出具有代表性的流量数据构件测试用例,然而,在收集的过程中可能收集到异常或错误流量数据,此时可能由于流量数据的错误导致无法生成准确的测试用例,并使得错误的测试用例无法覆盖所有代码,可见,相关技术中测试用例生成的准确性较差,容易导致覆盖率低的问题。
技术实现思路
1、为了生成更准确的测试用例,本申请提供一种提高测试用例覆盖率的方法、装置、设备和介质。
2、第一方面,本申请提供一种提高测试用例覆盖率的方法,采用如下的技术方案:
3、一种提高测试用例覆盖率的方法,包括:
4、获取
5、若所述版本信息为所述更新版本,则获取所述待测试应用程序的变更信息和历史测试用例;
6、根据所述变更信息和所述历史测试用例确定关联测试用例,并根据所述关联测试用例生成第一测试用例,所述第一测试用例用于测试所述更新版本的所述待测试应用程序;
7、若所述版本信息为所述原始版本,则获取所述待测试应用程序的用户需求和运行场景;
8、基于所述用户需求确定测试数据元,并根据所述测试数据元和所述运行场景生成第二测试用例;
9、使用所述第一测试用例或所述第二测试用例,测试所述待测试应用程序。
10、本申请在一较佳示例中可以进一步配置为,所述根据所述变更信息和所述历史测试用例确定关联测试用例,包括:
11、获取所述变更代码的注释内容和函数调用信息;
12、根据所述注释内容、所述函数调用信息和预设代码数据库,确定若干关联代码;
13、获取所有所述关联代码各自对应的执行路径,并根据所有关联代码各自对应的所述执行路径和所述历史测试用例,确定所述关联测试用例。
14、本申请在一较佳示例中可以进一步配置为,所述根据所有关联代码各自对应的执行路径和所述历史测试用例,确定关联测试用例,包括:
15、根据预设的执行路径和测试场景的对应关系和所述执行路径,确定所述执行路径对应的目标测试场景;
16、针对每一关联代码,获取输入数据,并根据所述输入数据和所述目标测试场景,确定所述输入数据对应的输出数据;
17、获取所述历史测试用例的第一标签集合,并根据所述目标测试场景和所述输出数据生成第二标签集合,标签集合中包括若干标签,标签用于描述输出数据和测试场景;
18、根据所述历史测试用例的所述第一标签集合和所述第二标签集合,确定所述关联测试用例。
19、本申请在一较佳示例中可以进一步配置为,所述根据所述历史测试用例的所述第一标签集合和所述第二标签集合,确定所述关联测试用例,包括:
20、计算所述第一标签集合和所述第二标签集合的第一相似度,并根据所述第一相似度和第一预设相似度阈值确定第一初始关联测试用例;
21、获取所述变更代码的第一结构数据和所有所述历史测试用例的第二结构数据;
22、计算所述第一结构数据和所述第二结构数据的第二相似度,并根据所述第二相似度和第二预设相似度阈值确定第二初始关联测试用例;
23、获取所有所述第二初始关联测试用例各自对应的覆盖率;
24、将最高覆盖率对应的所述第二初始关联测试用例,确定为所述关联测试用例。
25、本申请在一较佳示例中可以进一步配置为,所述根据所述测试数据元和所述运行场景生成第二测试用例,包括:
26、对所述测试数据元进行组合排序,得到排序后的测试数据元;
27、根据预设的运行场景和测试用例模板的对应关系和所述运行场景,确定所述运行场景对应的目标测试用例模板;
28、将所述排序后的测试数据元和所述目标测试用例模板,生成第二测试用例。
29、第二方面,本申请提供一种提高测试用例覆盖率的装置,采用如下的技术方案:
30、一种提高测试用例覆盖率的装置,包括:
31、第一获取模块,用于获取待测试应用程序的版本信息,所述版本信息包括:更新版本或原始版本;若为所述更新版本,则执行第二获取模块;若为所述原始版本,则执行第三获取模块;
32、第二获取模块,用于则获取所述待测试应用程序的变更信息和历史测试实例;
33、第一测试用例生成模块,用于根据所述变更信息和所述历史测试用例确定关联测试用例,并根据所述关联测试用例生成第一测试用例,所述第一测试用例用于测试所述更新版本的所述待测试应用程序;
34、第三获取模块,用于获取所述待测试应用程序的用户需求和运行场景;
35、第二测试用例生成模块,用于基于所述用户需求确定测试数据元,并根据所述测试数据元和所述运行场景生成第二测试用例;
36、测试模块,用于使用所述第一测试用例或所述第二测试用例,测试所述待测试应用程序。
37、本申请在一较佳示例中可以进一步配置为,所述第一测试用例生成模块在执行根据所述变更信息和所述历史测试用例确定关联测试用例时,用于:
38、获取所述变更代码的注释内容和函数调用信息;
39、根据所述注释内容、所述函数调用信息和预设代码数据库,确定若干关联代码;
40、获取所有所述关联代码各自对应的执行路径,并根据所有关联代码各自对应的所述执行路径和所述历史测试用例,确定所述关联测试用例。
41、本申请在一较佳示例中可以进一步配置为,所述第一测试用例生成模块在执行根据所有关联代码各自对应的执行路径和所述历史测试用例,确定关联测试用例时,用于:
42、根据预设的执行路径和测试场景的对应关系和所述执行路径,确定所述执行路径对应的目标测试场景;
43、针对每一关联代码,获取输入数据,并根据所述输入数据和所述目标测试场景,确定所述输入数据对应的输出数据;
44、获取所述历史测试用例的第一标签集合,并根据所述目标测试场景和所述输出数据生成第二标签集合,标签集合中包括若干本文档来自技高网...
【技术保护点】
1.一种提高测试用例覆盖率的方法,其特征在于,包括:
2.根据权利要求1所述的提高测试用例覆盖率的方法,其特征在于,所述变更信息包括:变更代码,所述根据所述变更信息和所述历史测试用例确定关联测试用例,包括:
3.根据权利要求2所述的提高测试用例覆盖率的方法,其特征在于,所述根据所有关联代码各自对应的执行路径和所述历史测试用例,确定关联测试用例,包括:
4.根据权利要求3所述的提高测试用例覆盖率的方法,其特征在于,所述根据所述历史测试用例的所述第一标签集合和所述第二标签集合,确定所述关联测试用例,包括:
5.根据权利要求1所述的提高测试用例覆盖率的方法,其特征在于,所述根据所述测试数据元和所述运行场景生成第二测试用例,包括:
6.一种提高测试用例覆盖率的装置,其特征在于,包括:
7.根据权利要求6所述的提高测试用例覆盖率的装置,其特征在于,所述第一测试用例生成模块在执行根据所述变更信息和所述历史测试用例确定关联测试用例时,用于:
8.根据权利要求6所述的提高测试用例覆盖率的装置,其特征在于,所述第一
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令所述计算机执行权利要求1~7任一项所述的提高测试用例覆盖率的方法。
...【技术特征摘要】
1.一种提高测试用例覆盖率的方法,其特征在于,包括:
2.根据权利要求1所述的提高测试用例覆盖率的方法,其特征在于,所述变更信息包括:变更代码,所述根据所述变更信息和所述历史测试用例确定关联测试用例,包括:
3.根据权利要求2所述的提高测试用例覆盖率的方法,其特征在于,所述根据所有关联代码各自对应的执行路径和所述历史测试用例,确定关联测试用例,包括:
4.根据权利要求3所述的提高测试用例覆盖率的方法,其特征在于,所述根据所述历史测试用例的所述第一标签集合和所述第二标签集合,确定所述关联测试用例,包括:
5.根据权利要求1所述的提高测试用例覆盖率的方法,其特征在于,所述根据所述测试数据元和所述运行场景生成第二测...
【专利技术属性】
技术研发人员:王明亮,高淑华,苏振明,
申请(专利权)人:河北明测软件服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。