本技术涉及软件测试,特别是涉及一种集成测试序列生成方法、计算机设备及存储介质。
背景技术:
1、为保证研发的软件系统在上线运行后能够具有稳定性与安全性,需要对软件系统进行一系列的软件测试。在基于集成测试实现对软件代码质量检测的过程中,主要需依据集成测试生成的测试顺序,来评判、识别出软件系统存在潜在缺陷的具体情况。
2、在将软件工程领域传统型的集成测试应用于银行、医疗、法律等具有特定性的行业时,由于集成测试序列生成方法未考虑到业务需求场景的特殊性,导致软件缺陷暴露过程缓慢,影响集成测试的效率。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种集成测试序列生成方法、计算机设备及计算机可读存储介质,能够结合预设语料库、考虑软件系统中类与业务需求场景的关联情况,将系统中频繁出现的与业务场景相关的测试优先级提高,提升容易发生错误的接口信息优先被测试的可能性,进一步提升了集成测试的效率。
2、银行业务同质性与测试桩构造复杂度相结合,进一步提升容易发生错误的接口信息优先被测试的可能性,提升集成测试的效率。
3、第一方面,本技术提供了一种集成测试序列生成方法。所述方法包括:
4、针对遗传算法迭代过程中的任一种群,确定所针对的种群对应的d个目标边;所述目标边为用于打破原始类间环路的边;
5、针对每个目标边,根据类间传递依赖模型获取所针对的目标边的依赖关系个数,并确定所针对的目标边对应的节点是否命中预设语料库,得到语料库命中结果;所述类间传递依赖模型为提前解析软件系统所构建得到的模型,所述类间传递依赖模型包括多个节点、以及节点之间的边,所述类间传递依赖模型中的节点用于表征所述软件系统中的类,所述类间传递依赖模型中的边用于表征两类间的依赖关系个数;
6、根据所述语料库命中结果确定所针对的目标边的权重信息;
7、根据所针对的目标边的依赖关系个数和所针对的目标边的权重信息计算所针对的目标边对应的测试桩复杂度;
8、根据d个目标边对应的测试桩复杂度确定所针对的种群的测试桩复杂度;
9、根据所针对的种群的测试桩复杂度,确定所针对的种群的适应度函数值;
10、确定遗传算法迭代过程中,适应度函数值最高的目标种群,根据所述目标种群生成测试序列。
11、在其中一个实施例中,所述针对遗传算法迭代过程中的任一种群,确定所针对的种群对应的d个目标边之前,所述方法还包括:
12、确定业务场景对应的多个关键词;
13、根据所述多个关键词构建预设语料库。
14、在其中一个实施例中,所述依赖关系个数包括m个依赖关系类型分别对应的依赖关系个数;所述根据所述语料库命中结果确定所针对的目标边的权重信息,包括:
15、在所针对的目标边对应的节点命中预设语料库的情况下,计算所针对的目标边中每个依赖关系类型的依赖关系个数、与m个依赖关系类型的依赖关系总数之间的比值,得到所针对的目标边中每个依赖关系类型的权重信息。
16、在其中一个实施例中,所述依赖关系个数包括m个依赖关系类型分别对应的依赖关系个数;所述根据所述语料库命中结果确定所针对的目标边的权重信息,包括:
17、在所针对的目标边对应的节点未命中预设语料库的情况下,为所针对的目标边中m个依赖关系类型分配相同的权重信息。
18、在其中一个实施例中,所述m个依赖关系类型包括调用方法类型、调用属性类型、返回类型以及传递参数类型;
19、所述根据所针对的目标边的依赖关系个数和所针对的目标边的权重信息计算所针对的目标边对应的测试桩复杂度,包括:
20、通过第一公式计算所针对的目标边对应的测试桩复杂度,第一公式为:
21、;
22、;
23、;
24、;
25、;
26、其中,所针对的目标边对应的节点为和,表示所针对的目标边对应的测试桩复杂度,表示调用方法类型对应的依赖关系个数,表示调用属性类型对应的依赖关系个数,表示返回类型对应的依赖关系个数,表示传递参数类型对应的依赖关系个数,、分别表示所述类间传递依赖模型中调用方法类型对应的依赖关系个数的最大值和最小值,、分别表示所述类间传递依赖模型中调用属性类型对应的依赖关系个数的最大值和最小值,、分别表示所述类间传递依赖模型中返回类型对应的依赖关系个数的最大值和最小值,、分别表示所述类间传递依赖模型中传递参数类型对应的依赖关系个数的最大值和最小值,表示权重信息,且。
27、在其中一个实施例中,所述根据所述语料库命中结果确定所针对的目标边的权重信息之后,所述方法还包括:
28、根据所述语料库命中结果确定所针对的目标边的复杂度系数;
29、所述根据所针对的目标边的依赖关系个数和所针对的目标边的权重信息计算所针对的目标边对应的测试桩复杂度,包括:
30、通过第二公式计算所针对的目标边对应的测试桩复杂度,第二公式为:
31、;
32、其中,s表示所针对的目标边的复杂度系数;在所针对的目标边对应的节点命中预设语料库的情况下,s大于1;在所针对的目标边对应的节点未命中预设语料库的情况下,s小于1。
33、在其中一个实施例中,所述类间传递依赖模型包括多个杠铃模型,每个杠铃模型由两个节点、以及两个节点之间的边构成,所述根据所针对的种群的测试桩复杂度,确定所针对的种群的适应度函数值,包括:
34、度量所针对的种群中高风险的杠铃模型被优先测试的程度;
35、根据所针对的种群的测试桩复杂度和高风险的杠铃模型被优先测试的程度,确定所针对的种群的适应度函数值。
36、在其中一个实施例中,所述度量所针对的种群中高风险的杠铃模型被优先测试的程度,包括:
37、确定所针对的种群中rt个杠铃模型的风险值;
38、根据风险值由高至低对所述rt个杠铃模型进行排序,得到目标测试序列;
39、通过第三公式计算所针对的种群中高风险的杠铃模型被优先测试的程度,第三公式为:
40、;
41、其中,表示所针对的种群中高风险的杠铃模型被优先测试的程度,表示所针对的种群对应的测试序列,表示目标测试序列,rt表示杠铃模型总数,表示测试序列中第k个杠铃模型的风险值,表示目标测试序列中第n个杠铃模型的风险值。
42、第二方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
43、针对遗传算法迭代过程中的任一种群,确定所针对的种群对应的d个目标边;所述目标边为用于打破原始类间环路的边;
44、针对每个目标边,根据类间传递依赖模型获取所针对的目标边的依赖关系个数,并确定所针对的目标边对应的节点是否命中预设语料库,得到语料库命中结果;所述类间传递依赖模型为提前解析软件系统所构建得到的模型,所述类间传递依赖模型包括多个节点、以及节点之间的边,所述类间传递依赖模型中的节点用于表征所述软件系统中的类,所述类间传递依赖模型中的边用于表征两类间的依赖关系个数;
45、根据所述语料库命中结果确定所针对的目标边的权重信息;
46、根据所针对的目标边的依赖关系个数和所针对的目标边的权重信息计算所针对的目标边对应的测试桩复杂度;
47、根据d个目标边对应的测试桩复杂度确定所针对的种群的测试桩复杂度;
48、根据所针对的种群的测试桩复杂度,确定所针对的种群的适应度函数值;
49、确定遗传算法迭代过程中,适应度函数值最高的目标种群,根据所述目标种群生成测试序列。
50、第三方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
51、针对遗传算法迭代过程中的任一种群,确定所针对的种群对应的d个目标边;所述目标边为用于打破原始类间环路的边;
52、针对每个目标边,根据类间传递依赖模型获取所针对的目标边的依赖关系个数,并确定所针对的目标边对应的节点是否命中预设语料库,得到语料库命中结果;所述类间传递依赖模型为提前解析软件系统所构建得到的模型,所述类间传递依赖模型包括多个节点、以及节点之间的边,所述类间传递依赖模型中的节点用于表征所述软件系统中的类,所述类间传递依赖模型中的边用于表征两类间的依赖关系个数;
53、根据所述语料库命中结果确定所针对的目标边的权重信息;
54、根据所针对的目标边的依赖关系个数和所针对的目标边的权重信息计算所针对的目标边对应的测试桩复杂度;
55、根据d个目标边对应的测试桩复杂度确定所针对的种群的测试桩复杂度;
56、根据所针对的种群的测试桩复杂度,确定所针对的种群的适应度函数值;
57、确定遗传算法迭代过程中,适应度函数值最高的目标种群,根据所述目标种群生成测试序列。
58、上述集成测试序列生成方法、计算机设备及存储介质,通过遗传算法进行迭代,逐步产生最优解,能够生成满足实际需要的测试序列;结合预设语料库、考虑软件系统中类与业务需求场景的关联情况,根据语料库命中结果设置权重,将系统中频繁出现的与业务场景相关的测试优先级提高,提升容易发生错误的接口信息优先被测试的可能性,提升了与特定行业、特定场景相关的软件系统的集成测试的效率。