System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件测试,尤其涉及一种测试用例的自动生成方法及相关装置。
技术介绍
1、在软件完成开发后,为了避免代码缺陷导致软件运行稳定性降低的风险,测试人员需要针对软件不同功能编写相应的测试用例,并利用测试用例对软件代码进行测试,从而发现代码缺陷并进行修复。由于软件所实现的功能较多,使得测试人员提供的测试用例无法覆盖全部的软件代码,此时就需要测试人员对测试过程进行分析,从而找到未覆盖的代码并重新生成测试用例以对未覆盖的代码进行测试。然而软件代码数量过于庞大,依赖人工查找未覆盖代码的效率较低,严重影响测试效率。
2、为了解决上述问题,现有技术提出利用精准测试系统对软件测试过程进行监测,并自动生成包括未覆盖代码的测试覆盖率报告,省略了人工查找未覆盖代码的步骤,在一定程度上提高了测试效率。但是,现有的精准测试系统仅能实现测试覆盖率报告的自动生成,用于对未覆盖代码进行测试的测试用例仍需测试人员基于测试覆盖率报告的其它数据人工生成。因此,如何实现测试用例的自动生成已成为亟待解决的问题。
技术实现思路
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、第二参数提取模块,用于利用预设特征提取模型分别对所本文档来自技高网...
【技术保护点】
1.一种测试用例的自动生成方法,其特征在于,包括:
2.根据权利要求1所述的测试用例的自动生成方法,其特征在于,所述将所述调用信息特征向量输入预设编码器,以使所述预设编码器输出包括所述调用信息特征向量中各所述调用信息的特征权重编码的权重编码集合,包括:
3.根据权利要求2所述的测试用例的自动生成方法,其特征在于,所述将所述权重编码集合和测试用例模板输入预设解码器,获得所述目标未覆盖代码的测试用例,包括:
4.根据权利要求1所述的测试用例的自动生成方法,其特征在于,所述预设编码器的训练过程,包括:
5.根据权利要求1所述的测试用例的自动生成方法,其特征在于,所述预设特征提取模型包括预设编译器和预设图卷积神经网络,所述利用预设特征提取模型分别对所述目标未覆盖代码和所述全量代码组进行特征向量提取,获得所述目标未覆盖代码的调用链路特征向量和调用特征向量,包括:
6.一种测试用例的自动生成系统,其特征在于,包括:
7.根据权利要求6所述的测试用例的自动生成方法,其特征在于,所述编码模块被设置为:
8.一种计
9.一种电子设备,其特征在于,包括至少一个处理器和与所述处理器连接的存储器,其中:
10.一种计算机存储介质,其特征在于,所述存储介质承载有一个或多个计算机程序,当所述一个或多个计算机程序被电子设备执行时,能够使所述电子设备实现如权利要求1至5中任意一项所述的测试用例的自动生成方法。
...【技术特征摘要】
1.一种测试用例的自动生成方法,其特征在于,包括:
2.根据权利要求1所述的测试用例的自动生成方法,其特征在于,所述将所述调用信息特征向量输入预设编码器,以使所述预设编码器输出包括所述调用信息特征向量中各所述调用信息的特征权重编码的权重编码集合,包括:
3.根据权利要求2所述的测试用例的自动生成方法,其特征在于,所述将所述权重编码集合和测试用例模板输入预设解码器,获得所述目标未覆盖代码的测试用例,包括:
4.根据权利要求1所述的测试用例的自动生成方法,其特征在于,所述预设编码器的训练过程,包括:
5.根据权利要求1所述的测试用例的自动生成方法,其特征在于,所述预设特征提取模型包括预设编译器和预设图卷积神经网络,所述利用预设特征提取模型分别对所述目标未覆盖代码和所述全量代码组进行...
【专利技术属性】
技术研发人员:吴睿男,魏思捷,高阿麒,赵大鹏,李金奕,
申请(专利权)人:中国农业银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。