应用于接口测试的模型生成方法、接口测试方法及设备与流程

未命名 07-14 阅读:88 评论:0


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.图1为本公开实施例提供的接口测试方法的一种应用场景图;
26.图2为本公开实施例提供的一种通过变异测试数据检测应用接口的示意图;
27.图3为本公开实施例提供的应用于接口测试的模型生成方法的流程示意图一;
28.图4为图3所示实施例中步骤s103的实现方式流程图;
29.图5为本公开实施例提供的一种缺陷概率矩阵的示意图;
30.图6为本公开实施例提供的另一种缺陷概率矩阵的示意图;
31.图7为本公开实施例提供的应用于接口测试的模型生成方法流程示意图二;
32.图8为本公开实施例提供的一种根据多个缺陷记录组确定缺陷概率矩阵的示意图;
33.图9为本公开实施例提供的接口测试方法的流程示意图一;
34.图10为本公开实施了提供的一种通过在线学习模型生成变异测试数据的示意图;
35.图11为本公开实施例提供的接口测试方法的流程示意图二;
36.图12为本公开实施例提供的一种变异策略集的示意图;
37.图13为图11所示实施例中步骤s404的实现方式流程图;
38.图14为本公开实施例提供的一种生成测试结果的过程示意图;
39.图15为本公开实施例提供的接口测试方法的流程示意图三;
40.图16为本公开实施例提供的另一种生成测试结果的过程示意图;
41.图17为本公开实施例提供的应用于接口测试的模型生成装置的结构框图;
42.图18为本公开实施例提供的接口测试装置的结构框图;
43.图19为本公开实施例提供的一种电子设备的结构示意图;
44.图20为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
45.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
46.下面对本公开实施例的应用场景进行解释:
47.图1为本公开实施例提供的接口测试方法的一种应用场景图,本公开实施例提供的接口测试方法,以及应用于接口测试的模型生成方法,可以应用于对应用程序的应用接口进行模糊测试的场景。具体地,如图1所示,本公开实施例提供的方法,可以应用于测试终端,测试终端分别与服务器和终端设备通信连接,其中,服务器和终端设备之间通信连接,服务器内运行目标应用的服务端,终端设备内运行目标应用的客户端。在目标应用的服务端和客户端内,分别设置有多个应用接口,用于实现对应的功能。测试终端通过向服务端和/或客户端的应用接口发送测试数据,并监测服务端和/或客户端的程序运行情况,来判断目标应用的服务端和/或客户端是否存在编码缺陷。当然,在另一种可能的实现方式中,目标应用的服务端和客户端,均运行在测试终端内,服务端和客户端在测试终端内部通信,测试终端通过本实施例提供的接口测试方法和用于接口测试的模型生成方法,实现模型的生成,以及基于模型对服务端和客户端的测试。
48.现有技术中,对应用接口的测试,通常是基于模糊测试技术来实现,即通过自动或
半自动生成的随机数据输入应用,根据应用调用相应接口处理随机数据后的结果是否出现异常,例如程序崩溃、断言(assertion)失败等,从而发现可能的程序缺陷。在该过程中,为了尽可能的触发程序的异常,相关技术中,通过改变接口请求或接口返回的内容等方式,生成变异测试数据,通常变异测试数据为应用接口无法处理的非法数据,因此,通过变异测试数据对应用接口进行测试,并监测应用接口处理变异测试数据的结果,即是否导致程序异常,可以实现检测应用接口健壮性的目的。图2为本公开实施例提供的一种通过变异测试数据检测应用接口的示意图,如图2所示,原始测试数据data_1中,包括a、b两个字段,对应的字段值分别为“1”和“20”,即a、b两个字段的字段值分别为一个整形数值;该原始测试数据data_1,可以作为应用接口a的输入数据,被应用接口a正常调用;对原始测试数据进行变异后,生成变异测试数据data_2,其中包括a、b两个字段,对应的字段值分别为“null”和“ture”,即a字段的字段值为空,a字段的字段值为一个布尔值。应用接口a在接收到变异的变异测试数据data_2后,是无法对a、b字段的“null”和“ture”进行正常处理的,在正常情况下,应用接口a的程序编码中,会通过断言等形式,识别此类非法输入,并给与提示。然而,当应用接口a的程序编码存在缺陷时,会导致断言失败、程序崩溃等程序异常问题,也即,该应用接口a存在编码缺陷。因此,通过将变异测试数据输入应用接口,并检测应用程序调用应用接口处理变异测试数据后的测试结果,可以实现对应用接口的健壮性测试。
49.由上可见,在对应用接口进行测试的过程中,应用接口对应的变异测试数据的质量(即变异测试数据的变异类型与应用接口的匹配度),会直接影响触发应用异常的概率,也即,变异测试数据的质量越高,则触发应用接口的编码缺陷的概率越大,所能够发现的缺陷数量、以及测试效率也就越高。而变异测试数据的生成,通常是基于在线学习模型实现的,在线学习模型可以通过不断执行“测试-学习”的循环,来调整模型中的权重值,从而使在经过一端时间的“测试-学习”的循环后,能够生产质量更高的变异测试数据,提高应用接口的测试效率。
50.然而,在现有技术中,在在线学习模型的构建初期,由于没有先验知识,在线学习模型的第一次投入使用时,模型内各中各种变异类型的权重值是随机生成的,只有在经过一端时间的学习后,才能起到提高测试效果的作用,而在在线学习模型投入使用前期,基于在线学习模型生成的用于对应用接口进行测试的变异测试数据,仍然存在数据质量低的问题,导致应用接口的测试效果差、测试效率低。本公开实施例提供一种应用于接口测试的模型生成方法以解决上述问题。
51.图3为本公开实施例提供的应用于接口测试的模型生成方法的流程示意图一。本实施例的方法可以应用在第一终端设备中,该应用于接口测试的模型生成方法,包括:
52.步骤s101,获取历史缺陷数据,历史缺陷数据表征目标应用接口至少一种缺陷类型的编码缺陷。
53.示例性地,历史缺陷数据是在之前的历史测试任务、历史测试过程中生成的数据,在一种可能的实现方式中,历史缺陷数据中至少编码缺陷的统计信息,例如,缺陷类型以及缺陷类型对应的发生次数;在另一种可能的实现方式中,历史缺陷数据中包括一条以上的缺陷记录,该缺陷记录为在之前的测试过程、测试任务中检测到的编码缺陷,缺陷记录可以表征一次接口测试的测试结果。示例性地,缺陷记录中可以包括缺陷标识、缺陷类型、测试时间、异常信息等描述信息,通过缺陷记录,可以确定一种缺陷类型的编码缺陷。
54.进一步地,历史缺陷数据所表征的编码缺陷的缺陷类型,与目标应用接口可能存在的编码缺陷的缺陷类型是相同的,例如,缺陷类型a为“输入参数为空字符串导致程序崩溃”、缺陷类型b为“输入参数超过边界值导致程序崩溃”、缺陷类型c为“输入参数字符长度过长导致程序崩溃”,历史缺陷数据所表征的编码缺陷的缺陷类型包括缺陷类型a、缺陷类型b、缺陷类型c,相应的,作为目标应用接口的接口a可能存在的编码缺陷的缺陷类型,也包括缺陷类型a、缺陷类型b、缺陷类型c。其中,历史缺陷数据中记录的缺陷类型,可以是在之前的测试过程中,针对接口a进行测试而得到的,也可以是针对其他应用接口,例如接口b、接口c,甚至其他应用程序进行测试而得到的,此处没有限制,只要历史缺陷数据所记录的编码缺陷,能够被目标应用接口触发即可。因此,本实施例中,通过获取历史缺陷数据,来获得目标应用接口的测试先验知识,在应用接口测试的应用场景下,接口测试的技术特性决定了,历史缺陷数据不需要局限于同一个应用接口的历史测试任务,因此,可以解决新增应用接口等未进行过测试的应用接口的缺乏测试先验知识的问题。
55.需要说明的是,本实施例中介绍的编码缺陷的缺陷类型,仅是示例性地,以缺陷类型a为例,当输入参数为空字符串导致程序崩溃时,可能是由于应用接口在处理输入参数时,由于输入参数为空字符,而程序中未设置正确的断言,导致无法正确调用应用接口对应的方法,进而导致方法报错、程序崩溃,因此,对于缺陷类型x,还可以描述为“未对x类型的输入参数设置正确断言”。因此,本实施例中,不同缺陷类型的编码缺陷,即是指由不同类型的输入数据所导致的缺陷。而缺陷类型的具体表现和描述方式,可以根据需要设置,此处不进行具体赘述和限制。
56.步骤s102,根据历史缺陷数据,生成缺陷概率矩阵,缺陷概率矩阵用于表征不同缺陷类型的编码缺陷的发生概率。
57.示例性地,对于应用程序中的编码缺陷,由于不同开发者的编码习惯,以及输入数据的类型的常见程度,会导致不同类型的编码缺陷的发生概率,并不是均匀分布的,例如,对于目标应用接口,数据类型#1(例如边界值数据)的输入数据,是一种常见类型的输入数据,因此,在应用程序的开发过程中,开发者通常会为数据类别#1的输入数据,设置相应的检测和断言,避免程序崩溃;而对于数据类型#2(例如超长字符串)的输入数据,是一种罕见类型的输入数据,因此开发者常会忘记设置相应的检测和断言。同时,对于不同的开发者,在开发过程中由于编码习惯不同,也会相应的产生对应缺陷类型的编码缺陷。
58.而通过历史缺陷数据,可以将之前测试过程中得到缺陷记录或缺陷统计,作为先验知识,构建一个表征不同缺陷类型的编码缺陷的发生概率的缺陷概率矩阵,通过该缺陷概率矩阵,可以实现对不同缺陷类型的编码缺陷的发生概率的评估,进而,通过不同缺陷类型的编码缺陷的发生概率,针对性的进行测试,能够实现更快的发现编码缺陷的目的。
59.其中,示例性地,历史缺陷数据中包括至少一条缺陷记录,缺陷记录表征在历史测试过程中,检测到的编码缺陷,如图4所示,步骤s102包括步骤s1021、s1022两个具体的实现步骤:
60.步骤s1021,根据历史缺陷数据中的缺陷记录,确定不同缺陷类型对应的缺陷记录的数量。
61.步骤s1022,根据不同缺陷类型对应的缺陷记录的数量,生成缺陷概率矩阵。
62.示例性地,历史缺陷数据中的缺陷记录,可以表征历史上一次接口测试的测试结
果。示例性地,缺陷记录中可以包括缺陷标识、缺陷类型、测试时间、异常信息等描述信息,通过对缺陷记录中的描述信息,对缺陷记录进行分类和统计,可以确定不同缺陷类型对应的缺陷记录的统计数量,之后,根据各缺陷类型对应的缺陷记录的统计数量进行归一化处理,即可生成缺陷概率矩阵。
63.图5为本公开实施例提供的一种缺陷概率矩阵的示意图,参考图5,缺陷概率矩阵为一个1*n的矩阵,n为大于1的整数,其中,缺陷概率矩阵中的每个元素,对应一种缺陷类型,每个元素值,表征对应缺陷类型的编码缺陷的发生概率,如图5中所示,缺陷类型a对应的发生概率为0.2;缺陷类型b对应的发生概率为0.1;缺陷类型c对应的发生概率为0.04。
64.图6为本公开实施例提供的另一种缺陷概率矩阵的示意图,参考图6,缺陷概率矩阵为一个m*n的矩阵,m为大于1的整数,其中,缺陷概率矩阵中的一行,代表一个开发者对应的不同缺陷类型的编码缺陷的发生概率,缺陷概率矩阵中的一列,代表一种缺陷类型的编码缺陷的发生概率。如图6所示,根据缺陷概率矩阵,对于开发者user_1,缺陷类型a的编码缺陷的发生概率为0.2,缺陷类型b的编码缺陷的发生概率为0.1;对于开发者user_2,缺陷类型a的编码缺陷的发生概率为0.12,缺陷类型b的编码缺陷的发生概率为0.08。本实施例中,通过开发者、编码类型两个维度的数据构成的缺陷概率矩阵,能够进一步的提高不同缺陷类型的编码缺陷的发生概率的评估精细度和准确性,从而提高测试效率。其中,开发者维度的数据,也可以从历史缺陷数据中的缺陷记录的描述信息中获得,此处不再赘述。
65.步骤s103,根据缺陷概率矩阵,生成在线学习模型,其中,在线学习模型用于生成变异测试数据,变异测试数据为目标应用接口的输入数据,变异测试数据用于触发目标应用接口对应缺陷类型的编码缺陷。
66.首先,对在线学习模型进行简单介绍,在线学习(online learning)模型,也称为多臂赌博机(multi-arm bandits,mba)模型,是一种利用反馈信息来完成模型的更新的技术,在线学习模型的整个反馈训练的过程可以转换为解决探索与利用(exploration vs exploitation)的问题。在模型运行的初始阶段,由于缺乏先验知识,在线学习模型需要在反馈过程中持续探索与收集数据,然后利用已经收集到的数据,再不断优化模型中的权重矩阵,来完成训练。对于传统的在线学习模型,模型中的初始权重矩阵,一般是基于等概率(等权重)的方式构建的,因此,在在线学习模型运行的初始阶段,基于该在线学习模型输出的数据,也相应的为随机数据或遍历数据。
67.在本公开实施例提供的应用场景中,在线学习模型用于生成特定缺陷类型的变异测试数据,在线学习模型内包括变异权重矩阵,基于该变异权重矩阵,在线学习模型生成对应变异类型的变异测试矩阵。进一步地,该变异测试数据为目标应用接口的输入数据,将变异测试数据输入目标应用接口后,目标应用接口被调用,并调用对应的方法处理变异测试数据,当目标应用接口存在编码缺陷时,会被触发,导致程序崩溃等异常,从而实现对目标应用接口的健壮性的检测。
68.其中,示例性地,根据缺陷概率矩阵,生成在线学习模型,包括:根据缺陷概率矩阵,确定初始变异权重矩阵,初始变异权重矩阵表征在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率;根据初始变异权重矩阵,生成在线学习模型。其中,缺陷概率矩阵与初始变异权重矩阵(变异权重矩阵的一种状态)具有对应关系,缺陷概率矩阵中的元素与初始变异权重矩阵中的元素一一对应。进一步地,缺陷概率矩阵中的元素对应缺陷
类型,初始变异权重矩阵中的元素对变异类型,而缺陷类型与变异类型具有对应关系,例如,缺陷类型a为“输入参数为空字符串导致程序崩溃”,对应的变异类型为“将输入参数变异为空字符”、缺陷类型b为“输入参数超过边界值导致程序崩溃”,则对应的变异类型为“将输入参数设置为超过边界值的数值”。由上可知,缺陷类型对应的变异类型,即为能够触发缺陷类型的编码缺陷的变异测试数据的类型。因此,通过缺陷概率矩阵,可以对应确定初始变异权重矩阵(变异权重矩阵),从而使在线学习模型能够生成与缺陷概率矩阵匹配的变异测试数据,进而在后续基于变异测试数据进行测试时,能触发缺陷概率矩阵中高概率缺陷类型的编码缺陷。
69.本实施例中,由于在线学习模型是基于缺陷概率矩阵生成的,更具体地,在线学习模型的初始变异权重矩阵是基于缺陷概率矩阵生成的,而缺陷概率矩阵是通过历史缺陷数据生成,能够表现不同缺陷类型的编码缺陷的发生概率的信息,因此,基于缺陷概率矩阵生成的初始变异权重矩阵,能够生成质量更好的变异测试数据,相比于传统的在线学习模型中使用等权重的初始变异权重矩阵的方案,能够使在线模型更快的收敛,从而在模型运行初期,基于在线学习模型对目标应用接口进行测试时,能够更快的检测到编码缺陷,提高检测效率。
70.进一步地,所述在线学习模型用于测试所述目标应用接口的编码缺陷。在生成在线学习模型后,基于在线学习模型,生成变异测试数据对目标应用接口进行测试,可以得到测试结果,测试结果中包括目标应用接口的编码缺陷的缺陷类型。之后,根据目标应用接口的编码缺陷的缺陷类型,更新在线学习模型中的变异权重矩阵,从而使在线学习模型能够不断的优化,随着测试任务的不断进行,在线学习模型所生成的变异测试数据会进一步提高,进而,也进一步的提高测试效率和测试效果。
71.本实施例提供的应用于接口测试的模型生成方法、接口测试方法及设备,通过获取历史缺陷数据,历史缺陷数据表征目标应用接口至少一种缺陷类型的编码缺陷;根据历史缺陷数据,生成缺陷概率矩阵,缺陷概率矩阵用于表征不同缺陷类型的编码缺陷的发生概率;根据缺陷概率矩阵,生成在线学习模型,其中,在线学习模型用于生成变异测试数据,变异测试数据为目标应用接口的输入数据,变异测试数据用于触发目标应用接口对应缺陷类型的编码缺陷,所述在线学习模型用于测试所述目标应用接口的编码缺陷。由于历史缺陷数据能够表现目标应用接口曾经出现过的编码缺陷的缺陷类型,因此,基于历史缺陷数据所生成的在线学习模型,能够生成与历史缺陷数据相匹配的变异测试数据,从而在基于变异测试数据对目标应用接口进行测试时,能够更有效地触发目标应用接口的编码缺陷,从而提高接口测试效率和有效性。
72.图7为本公开实施例提供的应用于接口测试的模型生成方法流程示意图二。本实施例中对步骤s101、s102和s103进一步细化,并增加了更新在线学习模型的步骤,该应用于接口测试的模型生成方法包括:
73.步骤s201,获取历史缺陷数据,历史缺陷数据中包括缺陷记录,以及与缺陷记录一一对应的用户标识,用户标识用于表征缺陷记录对应的开发者。
74.步骤s202,根据用户标识,对历史缺陷数据中的缺陷记录分类,生成至少一组缺陷记录组,缺陷记录组中包括至少一个对应相同用户标识的缺陷记录。
75.示例性地,在历史缺陷数据中,每一缺陷记录对应一个用户标识,用于表征缺陷记
录对应的开发者,更具体地,该用户表征指示编写该缺陷记录对应的接口的开发者。由于不同的开发者之间存在不同编码习惯、编码水平的差异,因此,根据不同的用户标识,对历史缺陷数据中的各条缺陷记录进行分类,生成各开发者所对应的缺陷记录组。
76.步骤s203,分别根据每一缺陷记录组中的缺陷记录,确定每一缺陷记录组中不同缺陷类型对应的缺陷记录的数量。
77.步骤s204,根据每一缺陷记录组中不同缺陷类型对应的缺陷记录的数量,生成缺陷概率矩阵,其中,缺陷概率矩阵用于表征各用户标识对应的不同缺陷类型的编码缺陷的发生概率。
78.示例性地,图8为本公开实施例提供的一种根据多个缺陷记录组确定缺陷概率矩阵的示意图,如图8所示,缺陷记录组(图中示为#1、#2、#3)内为历史缺陷数据中同一开发者(图中示为user_1、user_2、user_3)所对应的缺陷记录(图中示为record_1至record_30),对每一缺陷记录组内的缺陷记录进行统计,确定不同缺陷类型对应的缺陷记录的数量。进一步地,根据不同缺陷类型对应的缺陷记录的数量,生成缺陷概率矩阵,其中,缺陷概率矩阵可以参见图6所示的缺陷概率矩阵,缺陷概率矩阵的每一行元素对应同一开发者,缺陷概率矩阵的每一列对应一种缺陷类型。通过本实施例步骤生成的缺陷概率矩阵,可以从开发者和缺陷类型两个维度确定编码缺陷的发生概率,从而提高后续生成的变异测试数据的精确性。
79.步骤s205,根据缺陷概率矩阵,确定至少一个用户标识对应的缺陷概率数组,其中,用户标识用于指示开发者,缺陷概率数组用于表征不同缺陷类型的编码缺陷的发生概率。
80.步骤s206,根据各缺陷概率数组,确定各用户标识对应的初始变异权重数组,其中,初始变异权重数组表征在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率。
81.步骤s207,根据各用户标识对应的初始变异权重数组,生成初始变异权重矩阵,其中,初始变异权重矩阵表征在线学习模型首次运行时,各用户标识对应的不同变异类型的变异测试数据的生成概率。
82.步骤s208,根据初始变异权重矩阵,生成在线学习模型。
83.示例性地,在上述步骤中确定的缺陷概率矩阵为m*n的矩阵,m、n为大于1的整数,其中,缺陷概率矩阵的行标识与用户标识对应,更具体地,例如,缺陷概率矩阵为一个5*7的矩阵,则该矩阵表征5名开发者各自对应的7种缺陷类型的编码缺陷的发生概率,根据用户标识,将缺陷概率矩阵的第一行、第二行、第四行对应的元素,分别生成用户标识对应的缺陷概率数组;进一步地,根据缺陷类型与变异类型的对应关系(参考上述实施例中的介绍),确定缺陷概率数组对应的初始变异权重数组,进而根据与用户标识对应的多个初始变异权重数组,生成初始变异权重矩阵。本实施例步骤中生成的初始变异权重矩阵,能够在线学习模型首次运行时,表征不同用户标识对应的不同变异类型的变异测试数据的生成概率,从而实现用户维度的数据变异方向的细化,使基于初始变异权重数组生成的在线学习模型,能够在运行初始阶段,针对不同开发者开发的接口,生成对应的不同变异方向的变异测试数据,从而进一步的提高测试效率。
84.步骤s209,获取针对目标应用接口的测试结果,测试结果中包括目标应用接口的
编码缺陷的缺陷类型和目标应用接口的编码缺陷对应的用户标识。
85.步骤s210,根据编码缺陷对应的用户标识和目标应用接口的编码缺陷的缺陷类型,更新在线学习模型的变异权重矩阵中与用户标识对应的权重值,其中,变异权重矩阵表征各用户标识对应的不同变异类型的变异测试数据的生成概率。
86.示例性地,在生成在线学习模型后,利用该在线学习模型,可以生成变异测试数据,并对目标应用接口进行测试,得到测试结果。该测试结果用于表征特定变异类型的变异测试数据,是否触发了应用程序的异常、崩溃。示例性地,测试结果中包括目标应用接口的编码缺陷的缺陷类型和目标应用接口的编码缺陷对应的用户标识,根据测试结果中的信息,对在线学习模型中变异权重矩阵的对应用户标识、对应变异类型的权重值进行更新,提高对应用户标识、对应变异类型的权重值,基于在应用接口测试场景下,相同的编码缺陷可能多次出现的构思,使下次通过在线学习模型生成的该变异类型的变异测试数据的概率更高,从而实现更大概率的触发应用程序的异常,提高测试效果和测试效率。
87.图9为本公开实施例提供的接口测试方法的流程示意图一。本实施例的方法可以应用在第二终端设备中,该接口测试方法,包括:
88.步骤s301,获取初始测试数据,初始测试数据为目标应用接口的输入数据。
89.示例性地,初始测试数据是能够作为目标应用接口的输入数据的测试数据,其具有匹配目标应用接口的输入格式要求的数据格式。在一种可能的实现方式中,初始数据格式可以是基于预设的目标应用接口的定义信息,随机生成的符合目标应用接口的数据格式要求的数据,或者是提前预设的测试用例数据。
90.步骤s302,基于预设的在线学习模型,对初始测试数据进行变异,生成变异测试数据。
91.其中,变异测试数据用于触发目标应用接口对应缺陷类型的编码缺陷,在线学习模型是基于如图3-图8所对应的任一实施例所示提供的方法生成的。
92.步骤s303,通过变异测试数据,对目标应用接口进行测试,得到测试结果。
93.示例性地,参考图3-图8所介绍的在线学习模型的内容,通过在线学习模型,可以对初始测试数据中的部分或全部数据进行变异,改变其中的数据内容,从而生成变异测试数据。图10为本公开实施了提供的一种通过在线学习模型生成变异测试数据的示意图,如图10所示,初始测试数据data_1在经过在线学习模型处理后,生成变异测试数据data_2;其中,data_1中存在多条以键值对形式存在的数据,其中,data_1中“a”对应的值“20”,被变异为了data_2中“a”对应的值“none”。由于通过缺陷概率模型矩阵生成的在线学习模型,能够输出能够较大概率触发编码缺陷的变异测试数据,因此,在生成变异测试数据data_2后,通过该变异测试数据data_2对目标应该接口进行测试,具有较大的概率触发对应的编码缺陷,例如程序崩溃、异常等,通过监测应用程序的运行情况,即可得到测试结果。其中,在通过线学习模型,对初始测试数据进行变异的过程中,既可以对初始测试数据中的一个键值对数据进行变异、也可以对其中的多个键值对数据进行同时变异,变异点的选择,可以基于在线学习模型中的权重系数的大小确定。
94.本公开实施例中,通过获取初始测试数据,初始测试数据为目标应用接口的输入数据;基于预设的在线学习模型,对初始测试数据进行变异,生成变异测试数据,其中,变异测试数据用于触发目标应用接口对应缺陷类型的编码缺陷,在线学习模型是基于如图3-图
8所对应的任一实施例提供的方法生成的;通过变异测试数据,对目标应用接口进行测试,得到测试结果。由于通过缺陷概率模型矩阵生成的在线学习模型,能够输出能够较大概率触发编码缺陷的变异测试数据,因此,通过变异测试数据进行测试,相应的能够较大概率触发变异缺陷,从而提高对目标应用接口的测试效果和测试效率。
95.图11为本公开实施例提供的接口测试方法的流程示意图二。本实施例在图9所示实施例的基础上,对步骤s302和s303进一步细化,示例性地,目标应用接口包括第一接口,第一接口设置在目标应用的服务端。该应用于接口测试的模型生成方法包括:
96.步骤s401,获取初始测试数据,初始测试数据为目标应用接口的输入数据。
97.步骤s402,获取预设的变异策略集,变异策略集中包括至少两个数据变异策略,数据变异策略用于表征生成不同变异类型的变异测试数据的规则,其中,不同变异类型的变异测试数据用于触发对应缺陷类型的编码缺陷。
98.示例性地,在步骤s402之后,还包括:获取在线学习模型,在线学习模型中包括变异权重矩阵,变异权重矩阵表征不同变异类型的变异测试数据的生成概率。
99.步骤s403,根据在线学习模型中的变异权重矩阵,确定变异策略集中的目标变异策略,其中,目标变异策略为变异权重矩阵中生成概率大于阈值的变异类型所对应的变异策略。
100.示例性地,变异策略集是一种用于表征变异测试数据的变异规则的信息、数据或文件。变异策略集可以是用户预设的,或者根据历史缺陷数据进行解析和特征提取后生成的。变异策略集中包括至少两条数据变异策略,数据变异策略为一种表征生成变异测试数据的规则的信息,即变异规则。图12为本公开实施例提供的一种变异策略集的示意图。参考图12所示,示例性地,在变异策略集中,数据变异策略a表征的变异规则为“设置none值”、数据变异策略b表征的变异规则为“设置空字符串”、数据变异策略c表征的变异规则为“设置超长字符串”等。每种变异规则,用于对应生成一种变异类型的变异测试数据,也即,变异策略与变异类型一一对应。
101.进一步地,根据在线学习模型中的变异权重矩阵,将变异权重矩阵中生成概率大于阈值的变异类型所对应的变异策略,确定为目标变异策略,进而根据目标变异策略对应的变异规则,来进行数据变异,生成对应变异类型的变异测试数据。
102.其中,在一种可能的实现方式中,如图13所示,步骤s403包括步骤s4031、s4032和s4033三个具体的实现步骤:
103.步骤s4031,获取第一用户标识,第一用户表征用于指示目标接口的开发者。
104.步骤s4032,根据第一用户标识和在线学习模型中的变异权重矩阵,确定目标变异权重数组,目标变异权重数组用于表征第一用户标识对应的不同变异类型的变异测试数据的生成概率。
105.步骤s4033,根据目标变异权重数组,确定变异策略集中的目标变异策略,其中,目标变异策略为目标变异权重数组中生成概率最大的变异类型所对应的变异策略。
106.示例性地,在根据目标变异策略对测试数据进行变异的过程中,获取用于指示目标接口的开发者的第一用户标识,该第一用户标识可以通过预设的目标应用接口的日志获得,此处不进行赘述。
107.进一步地,根据第一用户标识和在线学习模型中的变异权重矩阵,定位变异权重
矩阵中第一用户标识对应的元素行(或元素列),进而确定目标变异权重数组,该目标变异权重数组用于表征第一用户标识对应的不同变异类型的变异测试数据的生成概率,即编写目标应用接口的开发者所对应的各类变异测试数据的生成概率。进而,在目标变异权重数组,确定变异策略集中的目标变异策略,例如,将概率最大的n个变异策略,确定为目标变异策略,n为大于0的整数。
108.本实施例中,通过获取第一用户标识,生成与开发者对应的变异测试数据,能够进一步的提高触发编码缺陷的概率,从而提高测试效率和测试效果。
109.步骤s404,基于目标变异策略,对测试数据进行变异,生成变异测试数据。
110.步骤s405,向服务端发送第一请求,第一请求内包括变异测试数据,所第一请求用于指示服务端调用第一接口,处理变异测试数据。
111.步骤s406,接收服务端返回的第一处理结果。
112.在一种可能的实现方式中,在步骤s406之后,包括:
113.步骤s407,根据第一处理结果,生成测试结果。
114.示例性地,本实施例提供的接口测试方法,用于测试位于目标应用的服务端的第一接口。在生成变异数据后,向服务端发送用于包括变异测试数据的第一请求,请求服务端调用第一接口对变异测试数据。
115.之后,根据服务端返回的第一处理结果,例如是否发生程序崩溃、异常等现象,生成测试结果。该测试结果可以表征针对目标应用接口的编码缺陷的缺陷类型与程序是否异常直接的映射关系。之后,根据测试结果,可以进一步对在线学习模型进行更新,该过程在上述实施例中已进行介绍,此处不再进行赘述。
116.在另一种可能的实现方式中,目标应用接口还包括第二接口,第二接口设置在目标应用的客户端,在步骤s406之后,包括:
117.步骤s408,向客户端发送第二请求,第二请求内包括第一处理结果,所第二请求用于指示客户端调用第二接口,处理第一处理结果;
118.步骤s409,接收客户端返回的第二处理结果,并根据第二处理结果,生成测试结果。
119.图14为本公开实施例提供的一种生成测试结果的过程示意图,参考图14所示,通过在线学习模型生成变异测试数据的功能,以模型服务的形式实现,第二测试终端在向服务端发送包含变异测试数据的第一请求后,接收到服务端返回的第一处理结果,由于之前向服务端发送的变异测试数据,为非法数据(非预期输入数据),因此,服务端返回的第一处理结果,作为客户端的输入数据时,也可以能为非预期输入数据,为了进一步地测试目标应用的客户端一侧的应用接口的代码健壮性,向目标应用的客户端发送包括第一处理结果的第二请求,并接收客户端返回的第二处理结果,根据第二处理结果,生成测试结果,以实现对目标应用的服务端、客户端的应用接口的联合测试。
120.图15为本公开实施例提供的接口测试方法的流程示意图三。本实施例在图9所示实施例的基础上,本实施例中对步骤s302和s303进一步细化,示例性地,目标应用接口包括第三接口,第一接口设置在目标应用的服务端。
121.该应用于接口测试的模型生成方法包括:
122.步骤s501,获取初始测试数据,初始测试数据为目标应用接口的输入数据。
123.步骤s502,获取预设的变异策略集,变异策略集中包括至少两个数据变异策略,数据变异策略用于表征生成不同变异类型的变异测试数据的规则,其中,不同变异类型的变异测试数据用于触发对应缺陷类型的编码缺陷
124.步骤s503,根据在线学习模型中的变异权重矩阵,确定变异策略集中的目标变异策略,其中,目标变异策略为变异权重矩阵中生成概率大于阈值的变异类型所对应的变异策略。
125.示例性地,在线学习模型中的变异权重矩阵,变异权重矩阵表征不同变异类型的变异测试数据的生成概率。
126.步骤s504,基于目标变异策略,对测试数据进行变异,生成变异测试数据。
127.步骤s505,获取服务端发送的第三请求,第三请求内包括预设测试数据,第三请求用于指示客户端调用第三接口处理预设测试数据。
128.步骤s506,将第三请求中的预设测试数据替换为变异测试数据,生成第四请求,第四请求用于指示客户端调用第三接口处理变异测试数据。
129.步骤s507,接收客户端返回的第三处理结果,并根据第三处理结果,生成测试结果。
130.示例性地,第三接口是设置在客户端一侧,用于实现客户端-服务端的通信和数据交互的功能结果,因此,触发和调用第三接口,需要服务端一侧的调用请求。图16为本公开实施例提供的另一种生成测试结果的过程示意图,参考图16所示,通过在线学习模型生成变异测试数据的功能,以模型服务的形式实现,第二测试终端在生成变异测试数据后,为了对第三接口进行测试,首先接收服务端发送的第三请求,之后,例如采用代理模拟中间人攻击的方式,将第三请求中的预设测试数据替换为变异测试数据,生成第四请求,并将第四请求发送至客户端,客户端对第四请求进行响应后,返回第三处理结果,之后,根据第三处理结果生成测试结果,以实现对目标应用的客户端一侧需要服务端请求才能调用的应用接口的测试,提高测试覆盖范围。
131.本实施例中步骤s501-s504的实现方式及有益效果,与图11所示实施例中步骤s401-s404的实现方式及有益效果相同,此处不再赘述。
132.对应于上文实施例的应用于接口测试的模型生成方法,图17为本公开实施例提供的应用于接口测试的模型生成装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图17,应用于接口测试的模型生成装置6,包括:
133.获取模块61,用于获取历史缺陷数据,历史缺陷数据表征目标应用接口至少一种缺陷类型的编码缺陷;
134.第一生成模块62,用于根据历史缺陷数据,生成缺陷概率矩阵,缺陷概率矩阵用于表征不同缺陷类型的编码缺陷的发生概率;
135.第二生成模块63,用于根据缺陷概率矩阵,生成在线学习模型,其中,在线学习模型用于生成变异测试数据,变异测试数据为目标应用接口的输入数据,变异测试数据用于触发目标应用接口对应缺陷类型的编码缺陷。
136.在本公开的一个实施例中,历史缺陷数据中包括至少一条缺陷记录,缺陷记录表征在历史测试过程中,检测到的编码缺陷;第一生成模块62,具体用于:根据历史缺陷数据中的缺陷记录,确定不同缺陷类型对应的缺陷记录的数量;根据不同缺陷类型对应的缺陷
记录的数量,生成缺陷概率矩阵。
137.在本公开的一个实施例中,历史缺陷数据中还包括与缺陷记录一一对应的用户标识,用户标识用于表征缺陷记录对应的开发者;
138.第一生成模块62在根据不同缺陷类型对应的缺陷记录的数量,生成缺陷概率矩阵时,具体用于:根据用户标识,对历史缺陷数据中的缺陷记录分类,生成至少一组缺陷记录组,缺陷记录组中包括至少一个对应相同用户标识的缺陷记录;分别根据每一缺陷记录组中的缺陷记录,确定每一缺陷记录组中不同缺陷类型对应的缺陷记录的数量;根据每一缺陷记录组中不同缺陷类型对应的缺陷记录的数量,生成缺陷概率矩阵,其中,缺陷概率矩阵用于表征各用户标识对应的不同缺陷类型的编码缺陷的发生概率。
139.在本公开的一个实施例中,第二生成模块63,具体用于:根据缺陷概率矩阵,确定初始变异权重矩阵,初始变异权重矩阵表征在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率;根据初始变异权重矩阵,生成在线学习模型。
140.在本公开的一个实施例中,第二生成模块63在根据缺陷概率矩阵,确定初始变异权重矩阵时,具体用于:根据缺陷概率矩阵,确定至少一个用户标识对应的缺陷概率数组,其中,用户标识用于指示开发者,缺陷概率数组用于表征不同缺陷类型的编码缺陷的发生概率;根据各缺陷概率数组,确定各用户标识对应的初始变异权重数组,其中,初始变异权重数组表征在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率;根据各用户标识对应的初始变异权重数组,生成初始变异权重矩阵,其中,初始变异权重矩阵表征在线学习模型首次运行时,各用户标识对应的不同变异类型的变异测试数据的生成概率。
141.在本公开的一个实施例中,第二生成模块63,还用于:获取针对目标应用接口的测试结果,测试结果中包括目标应用接口的编码缺陷的缺陷类型;根据目标应用接口的编码缺陷的缺陷类型,更新在线学习模型中的变异权重矩阵,变异权重矩阵表征不同变异类型的变异测试数据的生成概率。
142.在本公开的一个实施例中,测试结果中还包括目标应用接口的编码缺陷对应的用户标识,第二生成模块63在根据目标应用接口的缺陷类型,更新在线学习模型中的变异权重矩阵时,具体用于:根据编码缺陷对应的用户标识和目标应用接口的编码缺陷的缺陷类型,更新在线学习模型的变异权重矩阵中与用户标识对应的权重值,其中,变异权重矩阵表征各用户标识对应的不同变异类型的变异测试数据的生成概率。
143.其中,获取模块61、第一生成模块62、第二生成模块63依次连接。本实施例提供的应用于接口测试的模型生成装置6可以执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
144.对应于上文实施例的接口测试方法,图18为本公开实施例提供的接口测试装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。
145.参照图18,接口测试装置7,包括:
146.获取模块71,用于获取初始测试数据,初始测试数据为目标应用接口的输入数据;
147.生成模块72,用于基于预设的在线学习模型,对初始测试数据进行变异,生成变异测试数据,其中,变异测试数据用于触发目标应用接口对应缺陷类型的编码缺陷,在线学习模型是基于如图9-图16所对应的任一实施例提供的方法生成的;
148.测试模块73,用于通过变异测试数据,对目标应用接口进行测试,得到测试结果。
player,简称pmp)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图20示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
161.如图20所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(read only memory,简称rom)902中的程序或者从存储装置908加载到随机访问存储器(random access memory,简称ram)903中的程序而执行各种适当的动作和处理。在ram 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、rom 902以及ram 903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
162.通常,以下装置可以连接至i/o接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(liquid crystal display,简称lcd)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图20示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
163.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从rom902被安装。在该计算机程序被处理装置901执行时,执行本公开实施例的方法中限定的上述功能。
164.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
165.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
166.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电
子设备执行时,使得该电子设备执行上述实施例所示的方法。
167.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(local area network,简称lan)或广域网(wide area network,简称wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
168.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
169.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
170.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
171.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
172.第一方面,根据本公开的一个或多个实施例,提供了一种应用于接口测试的模型生成方法,包括:
173.获取历史缺陷数据,所述历史缺陷数据表征目标应用接口至少一种缺陷类型的编码缺陷;根据所述历史缺陷数据,生成缺陷概率矩阵,所述缺陷概率矩阵用于表征不同缺陷类型的编码缺陷的发生概率;根据所述缺陷概率矩阵,生成在线学习模型,其中,所述在线学习模型用于生成变异测试数据,所述变异测试数据为所述目标应用接口的输入数据,所
述变异测试数据用于触发所述目标应用接口对应缺陷类型的编码缺陷。
174.根据本公开的一个或多个实施例,所述历史缺陷数据中包括至少一条缺陷记录,所述缺陷记录表征在历史测试过程中,检测到的编码缺陷;根据所述历史缺陷数据,生成缺陷概率矩阵,包括:根据所述历史缺陷数据中的缺陷记录,确定不同缺陷类型对应的缺陷记录的数量;根据所述不同缺陷类型对应的缺陷记录的数量,生成所述缺陷概率矩阵。
175.根据本公开的一个或多个实施例,所述历史缺陷数据中还包括与所述缺陷记录一一对应的用户标识,所述用户标识用于表征所述缺陷记录对应的开发者;根据所述不同缺陷类型对应的缺陷记录的数量,生成所述缺陷概率矩阵,包括:根据所述用户标识,对所述历史缺陷数据中的缺陷记录分类,生成至少一组缺陷记录组,所述缺陷记录组中包括至少一个对应相同用户标识的缺陷记录;分别根据每一所述缺陷记录组中的缺陷记录,确定每一所述缺陷记录组中不同缺陷类型对应的缺陷记录的数量;根据每一所述缺陷记录组中不同缺陷类型对应的缺陷记录的数量,生成所述缺陷概率矩阵,其中,所述缺陷概率矩阵用于表征各用户标识对应的不同缺陷类型的编码缺陷的发生概率。
176.根据本公开的一个或多个实施例,根据所述缺陷概率矩阵,生成在线学习模型,包括:根据所述缺陷概率矩阵,确定初始变异权重矩阵,所述初始变异权重矩阵表征所述在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率;根据所述初始变异权重矩阵,生成所述在线学习模型。
177.根据本公开的一个或多个实施例,根据所述缺陷概率矩阵,确定初始变异权重矩阵,包括:根据所述缺陷概率矩阵,确定至少一个用户标识对应的缺陷概率数组,其中,所述用户标识用于指示开发者,所述缺陷概率数组用于表征不同缺陷类型的编码缺陷的发生概率;根据各所述缺陷概率数组,确定各所述用户标识对应的初始变异权重数组,其中,所述初始变异权重数组表征所述在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率;根据各所述用户标识对应的初始变异权重数组,生成初始变异权重矩阵,其中,所述初始变异权重矩阵表征所述在线学习模型首次运行时,各用户标识对应的不同变异类型的变异测试数据的生成概率。
178.根据本公开的一个或多个实施例,所述方法还包括:获取针对所述目标应用接口的测试结果,所述测试结果中包括所述目标应用接口的编码缺陷的缺陷类型;根据所述目标应用接口的编码缺陷的缺陷类型,更新所述在线学习模型中的变异权重矩阵,所述变异权重矩阵表征不同变异类型的变异测试数据的生成概率。
179.根据本公开的一个或多个实施例,所述测试结果中还包括所述目标应用接口的编码缺陷对应的用户标识,根据所述目标应用接口的缺陷类型,更新所述在线学习模型中的变异权重矩阵,包括:根据所述编码缺陷对应的用户标识和所述目标应用接口的编码缺陷的缺陷类型,更新所述在线学习模型的变异权重矩阵中与所述用户标识对应的权重值,其中,所述变异权重矩阵表征各用户标识对应的不同变异类型的变异测试数据的生成概率。
180.第二方面,根据本公开的一个或多个实施例,提供了一种接口测试方法,包括:
181.获取初始测试数据,所述初始测试数据为目标应用接口的输入数据;基于预设的在线学习模型,对所述初始测试数据进行变异,生成变异测试数据,其中,所述变异测试数据用于触发所述目标应用接口对应缺陷类型的编码缺陷,所述在线学习模型是基于如上第一方面以及第一方面各种可能的设计所述的应用于接口测试的模型生成方法生成的;通过
所述变异测试数据,对所述目标应用接口进行测试,得到测试结果。
182.根据本公开的一个或多个实施例,所述在线学习模型中包括变异权重矩阵,所述变异权重矩阵表征不同变异类型的变异测试数据的生成概率;基于预设的在线学习模型,对所述初始测试数据进行变异,生成变异测试数据,包括:获取预设的变异策略集,所述变异策略集中包括至少两个数据变异策略,所述数据变异策略用于表征生成不同变异类型的变异测试数据的规则,其中,不同变异类型的变异测试数据用于触发对应缺陷类型的编码缺陷;根据所述在线学习模型中的变异权重矩阵,确定所述变异策略集中的目标变异策略,其中,所述目标变异策略为所述变异权重矩阵中生成概率大于阈值的变异类型所对应的变异策略;基于所述目标变异策略,对所述测试数据进行变异,生成变异测试数据。
183.根据本公开的一个或多个实施例,根据所述在线学习模型中的变异权重矩阵,确定所述变异策略集中的目标变异策略,包括:获取第一用户标识,所述第一用户表征用于指示所述目标接口的开发者;根据所述第一用户标识和所述在线学习模型中的变异权重矩阵,确定目标变异权重数组,所述目标变异权重数组用于表征所述第一用户标识对应的不同变异类型的变异测试数据的生成概率;根据所述目标变异权重数组,确定所述变异策略集中的目标变异策略,其中,所述目标变异策略为所述目标变异权重数组中生成概率最大的变异类型所对应的变异策略。
184.根据本公开的一个或多个实施例,所述目标应用接口包括第一接口,所述第一接口设置在目标应用的服务端;通过所述变异测试数据,对所述目标应用接口进行测试,得到测试结果,包括:向所述服务端发送第一请求,所述第一请求内包括所述变异测试数据,所第一请求用于指示所述服务端调用所述第一接口,处理所述变异测试数据;接收所述服务端返回的第一处理结果,并根据所述第一处理结果,生成测试结果。
185.根据本公开的一个或多个实施例,所述目标应用接口还包括第二接口,所述第二接口设置在所述目标应用的客户端;根据所述第一处理结果,生成测试结果,包括:向所述客户端发送第二请求,所述第二请求内包括所述第一处理结果,所第二请求用于指示所述客户端调用所述第二接口,处理所述第一处理结果;接收所述客户端返回的第二处理结果,并根据所述第二处理结果,生成测试结果。
186.根据本公开的一个或多个实施例,所述目标应用接口包括第三接口,所述第三接口设置在目标应用的客户端;通过所述变异测试数据,对所述目标应用接口进行测试,得到测试结果,包括:获取服务端发送的第三请求,所述第三请求内包括预设测试数据,所述第三请求用于指示客户端调用所述第三接口处理所述预设测试数据;将所述第三请求中的预设测试数据替换为所述变异测试数据,生成第四请求,所述第四请求用于指示客户端调用所述第三接口处理所述变异测试数据;接收所述客户端返回的第三处理结果,并根据所述第三处理结果,生成测试结果。
187.第三方面,根据本公开的一个或多个实施例,提供了一种应用于接口测试的模型生成装置,包括:
188.获取模块,用于获取历史缺陷数据,所述历史缺陷数据表征目标应用接口至少一种缺陷类型的编码缺陷;
189.第一生成模块,用于根据所述历史缺陷数据,生成缺陷概率矩阵,所述缺陷概率矩阵用于表征不同缺陷类型的编码缺陷的发生概率;
190.第二生成模块,用于根据所述缺陷概率矩阵,生成在线学习模型,其中,所述在线学习模型用于生成变异测试数据,所述变异测试数据为所述目标应用接口的输入数据,所述变异测试数据用于触发所述目标应用接口对应缺陷类型的编码缺陷。
191.根据本公开的一个或多个实施例,所述历史缺陷数据中包括至少一条缺陷记录,所述缺陷记录表征在历史测试过程中,检测到的编码缺陷;所述第一生成模块,具体用于:根据所述历史缺陷数据中的缺陷记录,确定不同缺陷类型对应的缺陷记录的数量;根据所述不同缺陷类型对应的缺陷记录的数量,生成所述缺陷概率矩阵。
192.根据本公开的一个或多个实施例,所述历史缺陷数据中还包括与所述缺陷记录一一对应的用户标识,所述用户标识用于表征所述缺陷记录对应的开发者;所述第一生成模块在根据所述不同缺陷类型对应的缺陷记录的数量,生成所述缺陷概率矩阵时,具体用于:根据所述用户标识,对所述历史缺陷数据中的缺陷记录分类,生成至少一组缺陷记录组,所述缺陷记录组中包括至少一个对应相同用户标识的缺陷记录;分别根据每一所述缺陷记录组中的缺陷记录,确定每一所述缺陷记录组中不同缺陷类型对应的缺陷记录的数量;根据每一所述缺陷记录组中不同缺陷类型对应的缺陷记录的数量,生成所述缺陷概率矩阵,其中,所述缺陷概率矩阵用于表征各用户标识对应的不同缺陷类型的编码缺陷的发生概率。
193.根据本公开的一个或多个实施例,所述第二生成模块,具体用于:根据所述缺陷概率矩阵,确定初始变异权重矩阵,所述初始变异权重矩阵表征所述在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率;根据所述初始变异权重矩阵,生成所述在线学习模型。
194.根据本公开的一个或多个实施例,所述第二生成模块在根据所述缺陷概率矩阵,确定初始变异权重矩阵时,具体用于:根据所述缺陷概率矩阵,确定至少一个用户标识对应的缺陷概率数组,其中,所述用户标识用于指示开发者,所述缺陷概率数组用于表征不同缺陷类型的编码缺陷的发生概率;根据各所述缺陷概率数组,确定各所述用户标识对应的初始变异权重数组,其中,所述初始变异权重数组表征所述在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率;根据各所述用户标识对应的初始变异权重数组,生成初始变异权重矩阵,其中,所述初始变异权重矩阵表征所述在线学习模型首次运行时,各用户标识对应的不同变异类型的变异测试数据的生成概率。
195.根据本公开的一个或多个实施例,所述第二生成模块,还用于:获取针对所述目标应用接口的测试结果,所述测试结果中包括所述目标应用接口的编码缺陷的缺陷类型;根据所述目标应用接口的编码缺陷的缺陷类型,更新所述在线学习模型中的变异权重矩阵,所述变异权重矩阵表征不同变异类型的变异测试数据的生成概率。
196.根据本公开的一个或多个实施例,所述测试结果中还包括所述目标应用接口的编码缺陷对应的用户标识,所述第二生成模块在根据所述目标应用接口的缺陷类型,更新所述在线学习模型中的变异权重矩阵时,具体用于:根据所述编码缺陷对应的用户标识和所述目标应用接口的编码缺陷的缺陷类型,更新所述在线学习模型的变异权重矩阵中与所述用户标识对应的权重值,其中,所述变异权重矩阵表征各用户标识对应的不同变异类型的变异测试数据的生成概率。
197.第四方面,根据本公开的一个或多个实施例,提供了一种接口测试装置,包括:
198.获取模块,用于获取初始测试数据,所述初始测试数据为目标应用接口的输入数
据;
199.生成模块,用于基于预设的在线学习模型,对所述初始测试数据进行变异,生成变异测试数据,其中,所述变异测试数据用于触发所述目标应用接口对应缺陷类型的编码缺陷,所述在线学习模型是基于如上第一方面以及第一方面各种可能的设计所述的应用于接口测试的模型生成方法生成的;
200.测试模块,用于通过所述变异测试数据,对所述目标应用接口进行测试,得到测试结果。
201.根据本公开的一个或多个实施例,所述在线学习模型中包括变异权重矩阵,所述变异权重矩阵表征不同变异类型的变异测试数据的生成概率;所述生成模块,具体用于:获取预设的变异策略集,所述变异策略集中包括至少两个数据变异策略,所述数据变异策略用于表征生成不同变异类型的变异测试数据的规则,其中,不同变异类型的变异测试数据用于触发对应缺陷类型的编码缺陷;根据所述在线学习模型中的变异权重矩阵,确定所述变异策略集中的目标变异策略,其中,所述目标变异策略为所述变异权重矩阵中生成概率大于阈值的变异类型所对应的变异策略;基于所述目标变异策略,对所述测试数据进行变异,生成变异测试数据。
202.根据本公开的一个或多个实施例,所述生成模块在根据所述在线学习模型中的变异权重矩阵,确定所述变异策略集中的目标变异策略时,具体用于:获取第一用户标识,所述第一用户表征用于指示所述目标接口的开发者;根据所述第一用户标识和所述在线学习模型中的变异权重矩阵,确定目标变异权重数组,所述目标变异权重数组用于表征所述第一用户标识对应的不同变异类型的变异测试数据的生成概率;根据所述目标变异权重数组,确定所述变异策略集中的目标变异策略,其中,所述目标变异策略为所述目标变异权重数组中生成概率最大的变异类型所对应的变异策略。
203.根据本公开的一个或多个实施例,所述目标应用接口包括第一接口,所述第一接口设置在目标应用的服务端;所述测试模块,具体用于:向所述服务端发送第一请求,所述第一请求内包括所述变异测试数据,所第一请求用于指示所述服务端调用所述第一接口,处理所述变异测试数据;接收所述服务端返回的第一处理结果,并根据所述第一处理结果,生成测试结果。
204.根据本公开的一个或多个实施例,所述目标应用接口还包括第二接口,所述第二接口设置在所述目标应用的客户端;所述测试模块在根据所述第一处理结果,生成测试结果时,具体用于:向所述客户端发送第二请求,所述第二请求内包括所述第一处理结果,所第二请求用于指示所述客户端调用所述第二接口,处理所述第一处理结果;接收所述客户端返回的第二处理结果,并根据所述第二处理结果,生成测试结果。
205.根据本公开的一个或多个实施例,所述目标应用接口包括第三接口,所述第三接口设置在目标应用的客户端;所述测试模块,具体用于:获取服务端发送的第三请求,所述第三请求内包括预设测试数据,所述第三请求用于指示客户端调用所述第三接口处理所述预设测试数据;将所述第三请求中的预设测试数据替换为所述变异测试数据,生成第四请求,所述第四请求用于指示客户端调用所述第三接口处理所述变异测试数据;接收所述客户端返回的第三处理结果,并根据所述第三处理结果,生成测试结果。
206.第五方面,本公开实施例提供一种电子设备,包括:
207.处理器,以及与所述处理器通信连接的存储器;
208.所述存储器存储计算机执行指令;
209.所述处理器执行所述存储器存储的计算机执行指令,以实现如上第一方面以及第一方面各种可能的设计所述的应用于接口测试的模型生成方法,或者,实现如上第二方面以及第二方面各种可能的设计所述的接口测试方法。
210.第六方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的应用于接口测试的模型生成方法,或者,实现如上第二方面以及第二方面各种可能的设计所述的接口测试方法。
211.第七方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的应用于接口测试的模型生成方法,或者,实现如上第二方面以及第二方面各种可能的设计所述的接口测试方法。
212.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
213.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
214.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

技术特征:
1.一种应用于接口测试的模型生成方法,其特征在于,包括:获取历史缺陷数据,所述历史缺陷数据表征目标应用接口至少一种缺陷类型的编码缺陷;根据所述历史缺陷数据,生成缺陷概率矩阵,所述缺陷概率矩阵用于表征不同缺陷类型的编码缺陷的发生概率;根据所述缺陷概率矩阵,生成在线学习模型,其中,所述在线学习模型用于生成变异测试数据,所述变异测试数据为所述目标应用接口的输入数据,所述变异测试数据用于触发所述目标应用接口对应缺陷类型的编码缺陷,所述在线学习模型用于测试所述目标应用接口的编码缺陷。2.根据权利要求1所述的方法,其特征在于,所述历史缺陷数据中包括至少一条缺陷记录,以及与所述缺陷记录一一对应的用户标识,所述缺陷记录表征在历史测试过程中,检测到的编码缺陷,所述用户标识用于表征所述缺陷记录对应的开发者;根据所述历史缺陷数据,生成缺陷概率矩阵,包括:根据所述历史缺陷数据中的缺陷记录,确定不同缺陷类型对应的缺陷记录的数量;根据所述用户标识,对所述历史缺陷数据中的缺陷记录分类,生成至少一组缺陷记录组,所述缺陷记录组中包括至少一个对应相同用户标识的缺陷记录;分别根据每一所述缺陷记录组中的缺陷记录,确定每一所述缺陷记录组中不同缺陷类型对应的缺陷记录的数量;根据每一所述缺陷记录组中不同缺陷类型对应的缺陷记录的数量,生成所述缺陷概率矩阵,其中,所述缺陷概率矩阵用于表征各用户标识对应的不同缺陷类型的编码缺陷的发生概率。3.根据权利要求1所述的方法,其特征在于,根据所述缺陷概率矩阵,生成在线学习模型,包括:根据所述缺陷概率矩阵,确定至少一个用户标识对应的缺陷概率数组,其中,所述用户标识用于指示开发者,所述缺陷概率数组用于表征不同缺陷类型的编码缺陷的发生概率;根据各所述缺陷概率数组,确定各所述用户标识对应的初始变异权重数组,其中,所述初始变异权重数组表征所述在线学习模型首次运行时,不同变异类型的变异测试数据的生成概率;根据各所述用户标识对应的初始变异权重数组,生成初始变异权重矩阵,其中,所述初始变异权重矩阵表征所述在线学习模型首次运行时,各用户标识对应的不同变异类型的变异测试数据的生成概率;根据所述初始变异权重矩阵,生成在线学习模型。4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:获取针对所述目标应用接口的测试结果,所述测试结果中包括所述目标应用接口的编码缺陷的缺陷类型和所述目标应用接口的编码缺陷对应的用户标识;根据所述编码缺陷对应的用户标识和所述目标应用接口的编码缺陷的缺陷类型,更新所述在线学习模型的变异权重矩阵中与所述用户标识对应的权重值,其中,所述变异权重矩阵表征各用户标识对应的不同变异类型的变异测试数据的生成概率。5.一种接口测试方法,其特征在于,包括:
获取初始测试数据,所述初始测试数据为目标应用接口的输入数据;基于预设的在线学习模型,对所述初始测试数据进行变异,生成变异测试数据,其中,所述变异测试数据用于触发所述目标应用接口对应缺陷类型的编码缺陷,所述在线学习模型是基于如权利要求1-4任一项所述的方法生成的;通过所述变异测试数据,对所述目标应用接口进行测试,得到测试结果。6.根据权利要求5所述的方法,其特征在于,所述在线学习模型中包括变异权重矩阵,所述变异权重矩阵表征不同变异类型的变异测试数据的生成概率;基于预设的在线学习模型,对所述初始测试数据进行变异,生成变异测试数据,包括:获取预设的变异策略集,所述变异策略集中包括至少两个数据变异策略,所述数据变异策略用于表征生成不同变异类型的变异测试数据的规则,其中,不同变异类型的变异测试数据用于触发对应缺陷类型的编码缺陷;根据所述在线学习模型中的变异权重矩阵,确定所述变异策略集中的目标变异策略,其中,所述目标变异策略为所述变异权重矩阵中生成概率大于阈值的变异类型所对应的变异策略;基于所述目标变异策略,对所述测试数据进行变异,生成变异测试数据。7.根据权利要求6所述的方法,其特征在于,根据所述在线学习模型中的变异权重矩阵,确定所述变异策略集中的目标变异策略,包括:获取第一用户标识,所述第一用户表征用于指示所述目标接口的开发者;根据所述第一用户标识和所述在线学习模型中的变异权重矩阵,确定目标变异权重数组,所述目标变异权重数组用于表征所述第一用户标识对应的不同变异类型的变异测试数据的生成概率;根据所述目标变异权重数组,确定所述变异策略集中的目标变异策略,其中,所述目标变异策略为所述目标变异权重数组中生成概率最大的变异类型所对应的变异策略。8.根据权利要求5所述的方法,其特征在于,所述目标应用接口包括第一接口,所述第一接口设置在目标应用的服务端;通过所述变异测试数据,对所述目标应用接口进行测试,得到测试结果,包括:向所述服务端发送第一请求,所述第一请求内包括所述变异测试数据,所第一请求用于指示所述服务端调用所述第一接口,处理所述变异测试数据;接收所述服务端返回的第一处理结果,并根据所述第一处理结果,生成测试结果。9.根据权利要求8所述的方法,其特征在于,所述目标应用接口还包括第二接口,所述第二接口设置在所述目标应用的客户端;根据所述第一处理结果,生成测试结果,包括:向所述客户端发送第二请求,所述第二请求内包括所述第一处理结果,所第二请求用于指示所述客户端调用所述第二接口,处理所述第一处理结果;接收所述客户端返回的第二处理结果,并根据所述第二处理结果,生成测试结果。10.根据权利要求5-9任一项所述的方法,其特征在于,所述目标应用接口包括第三接口,所述第三接口设置在目标应用的客户端;通过所述变异测试数据,对所述目标应用接口进行测试,得到测试结果,包括:获取服务端发送的第三请求,所述第三请求内包括预设测试数据,所述第三请求用于
指示客户端调用所述第三接口处理所述预设测试数据;将所述第三请求中的预设测试数据替换为所述变异测试数据,生成第四请求,所述第四请求用于指示客户端调用所述第三接口处理所述变异测试数据;接收所述客户端返回的第三处理结果,并根据所述第三处理结果,生成测试结果。11.一种应用于接口测试的模型生成装置,其特征在于,包括:获取模块,用于获取历史缺陷数据,所述历史缺陷数据表征目标应用接口至少一种缺陷类型的编码缺陷;第一生成模块,用于根据所述历史缺陷数据,生成缺陷概率矩阵,所述缺陷概率矩阵用于表征不同缺陷类型的编码缺陷的发生概率;第二生成模块,用于根据所述缺陷概率矩阵,生成在线学习模型,其中,所述在线学习模型用于生成变异测试数据,所述变异测试数据为所述目标应用接口的输入数据,所述变异测试数据用于触发所述目标应用接口对应缺陷类型的编码缺陷,所述在线学习模型用于测试所述目标应用接口的编码缺陷。12.一种接口测试装置,其特征在于,包括:获取模块,用于获取初始测试数据,所述初始测试数据为目标应用接口的输入数据;生成模块,用于基于预设的在线学习模型,对所述初始测试数据进行变异,生成变异测试数据,其中,所述变异测试数据用于触发所述目标应用接口对应缺陷类型的编码缺陷,所述在线学习模型是基于如权利要求1-4任一项所述的方法生成的;测试模块,用于通过所述变异测试数据,对所述目标应用接口进行测试,得到测试结果。13.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至10中任一项所述的方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至10任一项所述的方法。15.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法。

技术总结
本公开实施例提供一种应用于接口测试的模型生成方法、接口测试方法及设备,通过获取历史缺陷数据,历史缺陷数据表征目标应用接口至少一种缺陷类型的编码缺陷;根据历史缺陷数据,生成缺陷概率矩阵,缺陷概率矩阵用于表征不同缺陷类型的编码缺陷的发生概率;根据缺陷概率矩阵,生成在线学习模型,其中,在线学习模型用于生成变异测试数据,变异测试数据为目标应用接口的输入数据,变异测试数据用于触发目标应用接口对应缺陷类型的编码缺陷。由于历史缺陷数据能够表现目标应用接口曾经出现过的编码缺陷的缺陷类型,因此,基于历史缺陷数据所生成的在线学习模型,能够生成与历史缺陷数据相匹配的变异测试数据,提高接口测试效率和有效性。有效性。有效性。


技术研发人员:林晓升 高玉军 刘璐辰 邹意林 卢凯旋 曹紫光 张天泽 杨萍
受保护的技术使用者:北京字节跳动网络技术有限公司
技术研发日:2021.12.31
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐