本公开涉及测试,尤其涉及一种测试用例推荐的方法及装置、电子设备和存储介质。
背景技术:
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、基于所述探针程序,获取所述被测业务系统的业务函数测试信息。
27、可选的,所述根据所述关联关系,确定所述测试用例集对应的业务函数的执行顺序及调用关系,包括:
28、根据所述业务函数测试信息,确定每个所述测试用例对应的业务函数执行链路;
29、基于所述执行链路、测试用例的执行顺序及依赖关系,确定所述测试用例集对应的业务函数的执行顺序及调用关系。
30、可选的,所述根据所述影响评估值及所述变动函数集,确定推荐的测试用例,包括:
31、对每个所述测试用例对应的影响评估值进行排序;
32、根据所述变动函数集及排序结果,确定推荐的测试用例。
33、根据本公开的第二方面,提供了一种测试用例推荐的装置,包括:
34、增强单元,用于基于探针程序,对被测业务系统的变动业务函数集及线程池进行增强处理;
35、第一获取单元,用于按照测试用例集对增强处理后的所述被测业务系统执行测试,并分别获取每个测试用例与所有的所述业务函数之间的关联关系;
36、评估单元,用于基于所述关联关系,评估所述业务函数对所述测试用例的影响程度,得到影响评估值;
37、确定单元,用于根据所述影响评估值及所述变动函数集,确定推荐的测试用例。
38、可选的,所述装置还包括:
39、绑定单元,用于基于埋点程序,将每个所述测试用例唯一对应的识别标识进行绑定。
40、可选的,所述第一获取单元还用于:
41、分别获取每个所述识别标识与所有的所述业务函数之间的映射关系。
42、可选的,所述评估单元包括:
43、生成模块,用于基于所述关联关系,生成所述测试用例集与所述业务函数之间的图模型;
44、降噪模块,用于对所述图模型进行降噪处理;
45、建立模块,用于建立降噪处理后的图模型对应的连通分量模型;
46、评估模块,用于基于所述联通分量模型,评估所述业务函数对所述测试用例的影响程度,得到影响评估值。
47、可选的,所述生成模块包括:
48、第一确定子模块,用于根据所述关联关系,确定所述测试用例集对应的业务函数的执行顺序及调用关系;
49、生成子模块,用于基于所述执行顺序及调用关系,生成所述测试用例集与所述业务函数之间的图模型。
50、可选的,所述建立模块包括:
51、计算子模块,用于利用预设算法对降噪处理后的图模型进行计算,得到强联通分量;
52、第二确定子模块,用于确定所述强联通分量所对应的业务方法,其中,所述业务方法由至少一个业务函数组成;
53、建立子模块,用于基于所述强联通分量及其对应的所述业务方法,建立降噪处理后的图模型对应的连通分量模型。
54、可选的,所述装置还包括:
55、插桩单元,用于基于所述探针程序及预设接口,对所述被测业务系统进行插桩处理;
56、第二获取单元,用于在按照测试用例集对增强处理后的所述被测业务系统执行测试之后,基于所述探针程序,获取所述被测业务系统的业务函数测试信息。
57、可选的,所述第一确定子模块还用于:
58、根据所述业务函数测试信息,确定每个所述测试用例对应的业务函数执行链路;
59、基于所述执行链路、测试用例的执行顺序及依赖关系,确定所述测试用例集对应的业务函数的执行顺序及调用关系。
60、可选的,所述确定单元包括:
61、排序模块,用于对每个所述测试用例对应的影响评估值进行排序;
62、确定模块,用于根据所述变动函数集及排序结果,确定推荐的测试用例。
63、根据本公开的第三方面,提供了一种电子设备,包括:
64、至少一个处理器;以及
65、与所述至少一个处理器通信连接的存储器;其中,
66、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的方法。
67、根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的方法。
68、根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前述第一方面所述的方法。
69、本公开提供了一种测试用例推荐的方法及装置、电子设备和存储介质,基于探针程序,对被测业务系统的变动业务函数集及线程池进行增强处理;按照测试用例集对增强处理后的所述被测业务系统执行测试,并分别获取每个测试用例与所有的所述业务函数之间的关联关系;基于所述关联关系,评估所述业务函数对所述测试用例的影响程度,得到影响评估值;根据所述影响评估值及所述变动函数集,确定推荐的测试用例。与相关技术相比,本公开实施例通过对线程池进行增强处理,能够提高对多线程业务的跨线程追踪能力,减少由于上下文环境的隔离导致部分调用信息丢失的情况发生,进而提升测试用例推荐的准确度;通过对获取到的关联关系进行建模并评估处理,来获取测试用例与业务函数之间的影响程度,以此来提升测试用例推荐的准确度。
70、应当理解,本部分所描述的内容并非旨在标识本技术的实施例的关键或重要特征,也不用于限制本技术的范围。本技术的其它特征将通过以下的说明书而变得容易理解。