测试用例生成方法、装置、电子设备和存储介质与流程

文档序号:31723680发布日期:2022-10-04 23:58阅读:60来源:国知局
测试用例生成方法、装置、电子设备和存储介质与流程

1.本公开涉及计算机技术领域,尤其涉及软件设计或软件测试技术领域。


背景技术:

2.测试用例(test case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等。
3.测试用例的设计是软件设计的核心步骤,一个好的测试用例能够以极小的测试用例数量实现极高的测试用例覆盖率。如何高效高质量地生成测试用例,成为需要解决的技术问题。


技术实现要素:

4.本公开提供了一种用于测试用例生成的方法、装置、设备以及存储介质。
5.根据本公开的一方面,提供了一种测试用例生成方法,包括:
6.利用测试用例生成网络对接口元数据进行处理,得到该接口元数据对应的测试用例;
7.对该测试用例的质量进行评估,在该测试用例的质量不满足预定要求的情况下,对该测试用例生成网络进行调整;针对调整后的测试用例生成网络,返回执行该利用测试用例生成网络对接口元数据进行处理,直至得到的测试用例的质量满足预定要求为止;以及,
8.在得到的测试用例的质量满足该预定要求的情况下,输出该测试用例。
9.根据本公开的另一方面,提供了一种测试用例生成装置,包括:
10.生成模块,用于利用测试用例生成网络对接口元数据进行处理,得到该接口元数据对应的测试用例;
11.判别模块,用于对该测试用例的质量进行评估,在该测试用例的质量不满足预定要求的情况下,对该测试用例生成网络进行调整,以供该生成模块利用调整后的测试用例生成网络对接口元数据进行处理,直至得到的测试用例的质量满足预定要求为止;
12.输出模块,用于在得到的测试用例的质量满足该预定要求的情况下,输出该测试用例。
13.根据本公开的另一方面,提供了一种电子设备,包括:
14.至少一个处理器;以及
15.与该至少一个处理器通信连接的存储器;其中,
16.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
17.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
18.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
19.本公开提出的测试用例生成方法,能够利用测试用例生成网络生成测试用例,并在测试用例不满足预定要求的情况下,调整测试用例生成网络,并利用调整后的测试用例生成网络重新生成测试用例;直至生成满足预定条件的测试用例。通过反复调整测试用例生成网络,能够提高测试用例的生成质量和生成效率。
20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.附图用于更好地理解本方案,不构成对本公开的限定。其中:
22.图1是根据本公开的一个应用场景示意图;
23.图2是根据本公开的一种测试用例生成方法200的实现流程图;
24.图3是根据本公开的测试用例生成过程示意图;
25.图4是根据本公开的一种测试用例生成网络的结构示意图;
26.图5是根据本公开的一种convqa模型的结构和功能示意图
27.图6是根据本公开的一种测试用例生成装置600的结构示意图;
28.图7示出了可以用来实施本公开实施例的示例电子设备700的示意性框图。
具体实施方式
29.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
30.测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试用例的内容可以包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地讲,测试用例可以认为是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实被测试的软件是否满足预定要求。测试用例是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式,同时测试用例也是将测试具体量化的方法之一,不同类别的软件,测试用例是不同的。
31.图1是本公开的一个应用场景示意图。如图1所示,软件产品开发人员在开发出软件产品后,用于生成测试用例的装置110根据该软件产品的测试目标、预期结果等相关信息,生成测试用例;在该测试用例被交付使用之前,可以由人工对该测试用例进行验收,并在验收合格之后交付软件测试人员,以供软件测试人员对该软件产品进行测试。
32.本公开实施例提出一种测试用例生成方法,图2是根据本公开的一种测试用例生成方法200的实现流程图,包括:
33.步骤210:利用测试用例生成网络对接口元数据进行处理,得到接口元数据对应的测试用例;
34.步骤220:对该测试用例的质量进行评估,在该测试用例的质量不满足预定要求的情况下,对该测试用例生成网络进行调整;针对调整后的测试用例生成网络,返回执行步骤210,直至得到的测试用例的质量满足预定要求为止;并在得到的测试用例的质量满足该预定要求的情况下,执行步骤230;
35.步骤230:输出该测试用例。
36.在上述过程中,如果利用测试用例生成网络生成的测试用例的质量不满足预定要求,则可以调整测试用例生成网络,并采用调整后的测试用例生成网络重新生成测试用例;如果重新生成的测试用例的质量仍不满足预定要求,则再次调整测试用例生成网络并生成测试用例。如果利用测试用例生成网络生成的测试用例的质量满足要求,则输出质量满足要求的测试用例。也就是说,可以重复多次生成测试用例,直至最近一次生成的测试用例的质量满足预定要求为止;当然,如果第一次生成的测试用例的质量就满足要求,就无需对测试用例生成网络进行调整,而是可以输出该第一次生成的测试用例。
37.关于如何衡量测试用例的质量,本公开可以采用通用的测试用例质量衡量标准。例如,将测试用例对被测试内容(如被测试软件产品的代码)的覆盖行数/覆盖率作为测试用例的衡量标准;覆盖行数/覆盖率越大,表示该测试用例能够测试的该软件产品的部分越多,则该测试用例的质量越高。基于此,本公开实施例可以预先设置一个目标覆盖率,作为用于确定测试用例的质量是否满足要求的比较基准。
38.在一些实施方式中,对测试用例的质量进行评估,包括:
39.按照测试用例的内容调用测试接口,从测试接口接收该测试用例的实际覆盖行数;
40.根据该实际覆盖行数确定测试用例的实际覆盖率;
41.根据测试用例的实际覆盖率及预先设定的目标覆盖率,对该测试用例的质量进行评估。
42.例如,如果测试用例的实际覆盖率大于或等于该预先设定的目标覆盖率,则认为该测试用例的质量满足预定要求;如果测试用例的实际覆盖率小于该预先设定的目标覆盖率,则认为该测试用例的质量不满足预定要求。
43.在一些实施方式中,该预先设定的目标覆盖率可以由人工根据经验设置。
44.另外,在测试用例的实际覆盖率大于该预先设定的目标覆盖率的情况下,可以对该目标覆盖率进行修改,使修改后的目标覆盖率等于该测试用例的实际覆盖率。前述过程的设计思路是:由于目标覆盖率是由人工根据经验设置的,其具体的数值是一个能够满足大部分实际情况的值;为了最终能够成功生成测试用例,该目标覆盖率的具体数值不宜过高,否则可能出现反复调整测试用例生成网络仍无法得到质量满足要求的测试用例的情况。在这种情况下,有可能出现生成的测试用例的质量高于预定要求的现象,即出现测试用例的实际覆盖率大于该预先设定的目标覆盖率的现象;此时可以提高该预定要求,也就是提高目标覆盖率,从而使目标覆盖率设置为更为符合实际情况的数值(也就是将该预定要求设置得更为合理)。
45.图3为根据本公开的测试用例生成过程示意图。如图3所示,在一些实施方式中,生成模块利用测试用例生成网络对接口元数据的参数进行处理,得到接口元数据对应的测试用例;判别模块对该测试用例的质量进行评估,如果该测试用例的质量不满足预定要求,则
对测试用例生成网络进行调整(或优化),生成模块利用调整后的测试用例生成网络对接口元数据的参数重新进行处理,得到接口元数据对应的新的测试用例。直至最新的测试用例的质量满足预定要求时,输出该测试用例。
46.本公开在生成接口元数据对应的测试用例时,可以针对接口元数据的不同类型的参数分别进行处理,再将处理结果进行组合,得到接口元数据对应的测试用例。在一些实施方式中,该利用测试用例生成网络对接口元数据进行处理包括:利用测试用例生成网络对该接口元数据的以下参数至少之一进行处理:数值类型参数和字符串类型参数;例如,接口元数据可以对应多个数值类型参数和/或多个字符串类型参数。
47.本公开实施例的接口元数据可以为接口的测试元数据。测试元数据可以指功能性的、终端测试中的接口信息和对应的接口元数据的参数(可以称为接口参数,如表单数据、请求体信息)以及接口的标签信息(可以称为接口标签)。其中,请求体信息可以视作结构化的语义信息。本公开通过采用测试用例生成网络对前述表单数据、请求体信息等结构化的语义信息进行处理,根据字段信息(指接口参数)和接口标签生成测试用例。
48.以下是一个接口元数据的示例。如该示例中,该接口元数据的参数中“age(年龄)”是数值类型(number)参数,“name(姓名)”、“gender(性别)”是字符串类型(string)参数。
49.[0050][0051]
本公开实施例可以针对接口元数据中的不同类型的参数分别进行处理,再将分别处理得到的处理结果进行组合,从而得到接口元数据对应的测试用例;采用这种分别处理的方式,能够针对不同参数的特征进行处理,从而提高测试用例的生成效率。在一些实施方式中,可以采用包括第一子网络和第二子网络的测试用例生成网络,第一子网络和第二子网络分别对不同类型的参数进行处理。
[0052]
在一些实施方式中,利用测试用例生成网络对接口元数据进行处理,得到该接口元数据对应的测试用例,包括:
[0053]
采用第一子网络对接口元数据的数值类型参数进行处理,得到数值类型参数对应的第一处理结果;并且,采用第二子网络对接口元数据的字符串类型参数进行处理,得到字符串类型参数对应的第二处理结果;
[0054]
将第一处理结果和第二处理结果进行组合,得到接口元数据对应的测试用例。
[0055]
图4为根据本公开的一种测试用例生成网络的结构示意图。如图4所示,测试用例生成网络可以包括第一子网络和第二子网络。其中,第一子网络如图4中的数值类型参数生成子网,用于对接口元数据的数值类型参数进行处理,得到对应的第一处理结果。第二子网
络如图4中的字符串类型参数生成子网,用于对接口元数据的字符串类型参数进行处理,得到对应的第二处理结果;在对接口元数据的字符串类型参数进行处理时,可以将接口元数据的标签数据作为辅助信息,利用标签数据和接口元数据的字符串类型参数生成问题文本,并采用第二子网络对该问题文本进行处理,得到对应的回答文本,再利用回答文本得到字符串类型参数对应的第二处理结果。
[0056]
在一些实施方式中,采用第一子网络对该接口元数据的数值类型参数进行处理,得到数值类型参数对应的第一处理结果,包括:
[0057]
将该接口元数据的多个数值类型参数组成第一向量,该第一向量中的各个元素分别对应该接口元数据的各个数值类型参数;
[0058]
采用第一子网络对第一向量进行计算,得到第二向量;该第二向量中的各个元素分别对应各个数值类型参数对应的第一处理结果。
[0059]
通过将多个数值类型参数组成第一向量,并对第一向量进行处理,能够实现多接口元数据的多个数值类型参数进行批量处理,提高处理速度,从而在整体上提高测试用例的生成速度。
[0060]
在一些实施方式中,如图4所示,第一子网络(图4中的数值类型参数生成子网)包含多个隐藏层,每个隐藏层对该隐藏层的输入向量中的各个元素分别进行线性处理,并利用对各个元素的处理结果生成输出向量;
[0061]
该第一子网络的第一个隐藏层的输入向量为第一向量;
[0062]
该第一子网络的相邻两个隐藏层中,前一个隐藏层的输出向量作为后一个隐藏层的输入向量;
[0063]
该第一子网络的最后一个隐藏层的输出向量为该第二向量。
[0064]
图4显示的数值类型参数生成子网包括3个隐藏层,每个隐藏层对输入向量中的各个元素做线性处理,如以下式子(1)所示的线性处理:
[0065]
yj=w
ij
pj+b
ij
ꢀꢀꢀ
(1)
[0066]
其中,pj表示输入向量中的序列号为j的元素;
[0067]
参数w
ij
和b
ij
为对pj进行处理所采用的参数;其中下标i表示隐藏层的序列号、j表示该参数为针对输入向量中的序列号为j的元素的参数
[0068]
yj为对pj进行处理后得到的结果。
[0069]
如图4中,3个隐藏层采用类感知机模型结构;第一个和第二个隐藏层在对输入向量中的各个元素进行式子(1)所示的线性处理之后,分别添加一个激活函数层,该激活函数可以采用带泄露线性整流(leaky relu,leaky linear unit)函数。leaky relu函数的表达式如公式(2)所示:
[0070][0071]
其中,ai为1到正无穷的一个固定参数。
[0072]
由上述第一子网络的结构可见,第一子网络采用分层的结构,每一层对输入的向量做线性处理;通过多层重叠,实现对第一向量的非线性处理。这样,既能够使每一层的结构简单、同时又能够实现对第一向量的非线性处理,即,在保证第一子网络结构简单的基础
上达到更高的处理要求。
[0073]
第一子网络最终生成一个与输入向量的维度一致的向量,代表测试用例生成网络本次生成的数字类型参数的预测值,之后将计入本次生成的数字类型参数的预测值输出到后处理模块进行用例生成。
[0074]
在一些实施方式中,如图4所示,第二子网络(图4中的数值类型参数生成子网)可以采用多轮对话问答(convqa/conv-qa,conversational question answering)模型。
[0075]
convqa模型相当于一个智能对话神经网络。将问题文本输入convqa模型,convqa模型可以输出该问题文本对应的回答文本。由于convqa模型的处理内容是文本信息,在一些实施方式中,上述的将问题文本输入多轮对话问答模型,得到针对该问题文本的回答文本可以包括:
[0076]
将该问题文本和接口文档输入该多轮对话问答模型,得到针对该问题文本和该接口文档的回答文本;其中,该接口文档为由该接口元数据的标签数据所对应的文档信息组成的文档。
[0077]
事实上,接口元数据的字符串类型参数是多个独立的参数;本公开将这些独立的参数通过结合标签数据来组合成问题文本,就可以采用比较成熟的convqa模型来进行回答预测,并根据预测的回答文本来得到字符串类型参数对应的第二处理结果。这种方式对已有的模型几乎没有改动,并且能够达到很好的处理效果。
[0078]
针对标签数据的处理,本公开可以使用测试知识图谱,将测试元数据的接口信息输入到测试知识图谱中,从而将当前接口对应的标签信息提取出来。之后,将当前的标签信息与字符串类型的参数结合,得到问题文本,并采用convqa模型对问题文本统一进行处理。在一些实施方式中,除了问题文本以外,还可以将上一轮对话质量输入convqa模型中,以帮助convqa模型生成更高质量的回答文本。
[0079]
第二子网络输出针对问题文本的回答文本之后,可以对该回答文本进行分词和/或关键词提取处理,得到字符串类型参数对应的第二处理结果。例如,对问答文本进行分词处理,得到多个分词;再从多个分词中提取关键词。关键词可以包括携带有用信息的分词;例如,“姓名”、“年龄”属于携带有用信息的分词,即关键词;“是”、“了”属于不携带有用信息的分词,则不是关键词。
[0080]
通过第一子网络和第二子网络的处理,分别得到了各个数值类型参数对应的第一处理结果、以及各个字符串类型参数对应的第二处理结果。如图4所示,将第一处理结果和第二处理结果进行组合,可以得到最终的测试用例。例如,根据接口元数据的信息组织方式,将第一处理结果和第二处理结果填充到对应接口的属性中,形成接口元数据对应的测试用例。
[0081]
如前文所述,接口元数据可以包括接口信息、接口参数以及接口标签。参照前文所述的接口元数据的示例,接口元数据表现为代码或脚本的形式;接口元数据的接口参数中包括数值类型参数和字符串类型参数。上述“接口元数据的信息组织方式”可以指该代码或脚本中各类参数的组织形式,如数值类型参数和字符串类型参数在该代码或脚本中的位置、和/或各个位置之间的关系。
[0082]
并且,接口元数据的信息组织方式与测试用例的结构对应;在确定了接口元数据的信息组织方式的情况下,该接口元数据对应的测试用例的结构也就可以被确定出来。基
于此,本公开实施例可以根据接口元数据的信息组织方式,将第一处理结果(对应数值类型参数)和第二处理结果(对应字符串类型参数)填充到接口的属性中,以便快速组合成为测试用例,从而提高测试用例的组合速度,从整体上提高测试用例的生成速度。
[0083]
此外,本公开实施例采用的多轮对话问答模型可以由通用问答数据集中的训练样本和该接口元数据的标签数据所对应的历史问答信息训练得到。例如,通用问答数据集可以包括文本中的问答(quac,question answering in context)数据集,quac数据集是一种向公众开放的训练数据集。采用该通用的quac数据集、以及接口元数据的标签数据所对应的历史问答信息训练convqa模型,可以使convqa模型更容易满足本公开所涉及的测试用例生成场景。
[0084]
图5为根据本公开的一种convqa模型的结构和功能示意图。如图5所示,convqa模型包括3个模块,包括convqa模型模块、历史对话选取模块/历史选择(history selection)模块、以及和历史对话建模模块/历史建模(history modeling)模块。其中,历史建模(history modeling)模块可以作为convqa模型模块的一部分。历史选择(history selection)模块接收多轮会话问答信息(如接口元数据的标签数据所对应的历史问答信息),并对多轮历史会话问答信息进行选择或筛选;历史建模(history modeling)模块采用经过选择或筛选的多轮会话问答信息进行历史会话建模。
[0085]
以上介绍了测试用例的生成方式。由上述内容可见,测试用例生成网络(也可以称为生成器部分)可以视作针对每个元素(如接口参数)进行参数生成。对于接口的参数和标签语义结构化信息进行编码解码处理,生成测试用例。主要原理如下:
[0086]
假设每个接口x拥有参数a(数值类型参数)、参数b(字符串类型参数)、标签数据t,生成器采用式子(3)所示的函数生成接口元数据对应的测试用例:
[0087]
d(x)=fa(a)+f
conv-qa
(b,t)
ꢀꢀꢀ
(3)
[0088]
其中,fa(a)表示对数值类型参数进行处理的函数;
[0089]fconv-qa
(b,t)表示对字符串类型参数和接口的标签数据所生成的问题文本进行处理的函数。
[0090]
fa(a)和f
conv-qa
(b,t)分别对数值类型参数和问题文本进行处理,得到数值类型参数对应的第一处理结果和字符串类型参数对应的第二处理结果。
[0091]
对于数字类型的参数生成部分,系统会随机对参数进行赋值,采用类感知机的方式组织网络结构;并基于判别器所确定出的当前测试用例的质量进行优化。
[0092]
对于字符串类型的参数部分,是采用基于转换器的双向编码表示(bert,bidirectional encoder representation from transformers)的历史答案编码实现多轮会话问答模型来进行处理的,该模型的输入向量是根据当前的参数的键生成的问题文本,输出向量为该问题文本对应的回答文本。
[0093]
以上介绍了测试用例的生成方式。在生成测试用例之后,本公开实施例可以采用判别模型(也可以称为判别器)对确定测试用例的质量,并判断测试用例的质量是否满足预定要求。
[0094]
在一些实施方式中,对测试用例的质量进行评估,包括:
[0095]
按照该测试用例的内容调用测试接口,从该测试接口接收该测试用例的实际覆盖行数;
[0096]
根据该实际覆盖行数确定该测试用例的实际覆盖率;
[0097]
根据该测试用例的实际覆盖率及预先设定的目标覆盖率,对该测试用例的质量进行评估。
[0098]
例如,判别器调用远程的测试接口,用于评估当前测试用例的质量;测试接口向判别器返回当前测试用例的实际覆盖行数。覆盖行数可以指测试用例对被测试内容(如被测试软件产品的代码)的覆盖行数;覆盖行数越大,表示测试用例能够测试的内容越多,该测试用例的质量也就越高。
[0099]
对于本公开的实际测试,可以指通过脚本的方式测试生成器所生成的测试用例。在测试进行的时候,可以将所需要测试的内容(代码)部署到一台服务器上并启动,脚本负责组织测试用例并按照用例内容调用目标服务器的接口进行测试即可。
[0100]
在一些实施方式中,可以采用以下式子(4)来评估测试用例的质量:
[0101]
l(y|f(x))=cls(y,f(x))(y-f(x))2ꢀꢀꢀ
(4)
[0102]
其中,
[0103]
f(x)表示测试用例的实际覆率;y表示目标覆盖率。
[0104]
可以看出,在上例中,如果测试用例的实际覆盖率大于或等于预先设定的目标覆盖率,则式子(4)中l(y|f(x))的值为0或正数,表明测试用例的质量满足预定要求;如果测试用例的实际覆盖率小于预先设定的目标覆盖率,则式子(4)中l(y|f(x))的值为负数,表明测试用例的质量不满足预定要求,并且l(y|f(x))的绝对值越大表示测试用例的质量越差。
[0105]
因此,根据评估的结果,如式子(4)中l(y|f(x))的值,即可以对用于生成测试用例的测试用例生成网络进行调整,并确定对测试用例生成网络的调整方向。在一些实施方式中,在测试用例的质量不满足预定要求的情况下,对测试用例生成网络进行调整,包括:
[0106]
在该测试用例的质量不满足预定要求、并在该测试用例的质量比上一次得到的测试用例的质量下降的情况下,按照与上一次调整方向相反的方向、再次调整该测试用例生成网络的参数;或者,
[0107]
在该测试用例的质量不满足预定要求、并在该测试用例的质量比上一次得到的测试用例的质量提升的情况下,按照与上一次调整方向相同的方向、再次调整该测试用例生成网络的参数。
[0108]
例如,如果判别器向测试用例生成网络反馈的l(y|f(x))为负值,则调整测试用例生成网络的参数。在调整之后并重新生成新的测试用例之后,如果判别器计算出该新的测试用例的l(y|f(x))的值仍为负值、并且绝对值有增大的趋势,则表明上一次参数调整的方向不正确,那么在下次调整时,就对测试用例生成网络的参数进行相反方向的调整;相反,如果判别器计算出该新的测试用例的l(y|f(x))的值仍为负值、并且绝对值有减小的趋势,则表明上一次参数调整的方向正确,那么在下次调整时,就对测试用例生成网络的参数进行相同方向的调整。如此反复调整,直至l(y|f(x))的值为0或正数时,表明最近一次生成的测试用例的质量满足预定要求,则不再调整测试用例生成网络,并且确定该最近一次生成的测试用例为输出的测试用例。该测试用例可以被交付使用、或者在进行人工质量评估之后被交付使用。
[0109]
综上可见,本公开主要解决接口自动化测试过程中纷繁复杂的接口用例如何保证测试质量的问题,系统的输入内容是接口元数据,测试用例生成网络根据接口元数据的对应参数生成测试用例,判别器不断地对生成器生成的测试用例的质量进行评估,在质量不满足预定要求时调整测试用例生成网络并重新生成测试用例,直至最终生成的测试用例满足预先设定的质量要求。在进行质量评估时,对测试用例的实际覆盖率和预先设定的目标覆盖率进行比较,并且可以根据比较结果确定测试用例生成网络的参数调整方向,以提高生成测试用例的效率。当测试用例的实际覆盖率大于预先设定的目标覆盖率时,将目标覆盖率修改为等于该实际覆盖率,并可以作为下一次训练测试用例时的评估标准,从而实现高质量测试用例生成。
[0110]
本公开实施例还提出一种测试用例生成装置,图6是根据本公开的一种测试用例生成装置600的结构示意图,包括:
[0111]
生成模块610,用于利用测试用例生成网络对接口元数据进行处理,得到该接口元数据对应的测试用例;
[0112]
判别模块620,用于对该测试用例的质量进行评估,在该测试用例的质量不满足预定要求的情况下,对该测试用例生成网络进行调整,以供该生成模块610利用调整后的测的质量不满足预定要求的情况下试用例生成网络对接口元数据进行处理,直至得到的测试用例的质量满足预定要求为止;
[0113]
输出模块630,用于在得到的测试用例的质量满足预定要求的情况下,输出该测试用例。
[0114]
在一些实施方式中,生成模块610用于利用测试用例生成网络对接口元数据的以下参数至少之一进行处理:数值类型参数和字符串类型参数。
[0115]
在一些实施方式中,该测试用例生成网络包括第一子网络和第二子网络;
[0116]
该生成模块610用于:
[0117]
采用该第一子网络对该接口元数据的数值类型参数进行处理,得到该数值类型参数对应的第一处理结果;并且,采用该第二子网络对该接口元数据的字符串类型参数进行处理,得到该字符串类型参数对应的第二处理结果;
[0118]
将第一处理结果和第二处理结果进行组合,得到该接口元数据对应的测试用例。
[0119]
在一些实施方式中,该生成模块610用于:
[0120]
将该接口元数据的多个数值类型参数组成第一向量,该第一向量中的各个元素分别对应该接口元数据的各个数值类型参数;
[0121]
采用该第一子网络对该第一向量进行计算,得到第二向量;该第二向量中的各个元素分别对应该各个数值类型参数对应的第一处理结果。
[0122]
在一些实施方式中,该第一子网络包含多个隐藏层,每个隐藏层对隐藏层的输入向量中的各个元素分别进行线性处理,并利用对该各个元素的处理结果生成输出向量;
[0123]
该第一子网络的第一个隐藏层的输入向量为该第一向量;
[0124]
该第一子网络的相邻两个隐藏层中,前一个隐藏层的输出向量作为后一个隐藏层的输入向量;
[0125]
该第一子网络的最后一个隐藏层的输出向量为该第二向量。
[0126]
在一些实施方式中该第二子网络包括多轮对话问答模型;
[0127]
该生成模块610用于:
[0128]
利用接口元数据的标签数据和该接口元数据的字符串类型参数生成问题文本;
[0129]
将该问题文本输入该多轮对话问答模型,得到针对该问题文本的回答文本;
[0130]
对该回答文本进行分词和/或关键词提取,得到该字符串类型参数对应的第二处理结果。
[0131]
在一些实施方式中,该生成模块610用于:
[0132]
将问题文本和接口文档输入多轮对话问答模型,得到针对问题文本和该接口文档的回答文本;其中,接口文档为由接口元数据的标签数据所对应的文档信息组成的文档。
[0133]
在一些实施方式中,多轮对话问答模型由通用问答数据集中的训练样本和该接口元数据的标签数据所对应的历史问答信息训练得到。
[0134]
在一些实施方式中,该生成模块610用于:
[0135]
根据该接口元数据的信息组织方式,将第一处理结果和第二处理结果填充到对应接口的属性中,形成该接口元数据对应的测试用例。
[0136]
在一些实施方式中,该判别模块620用于:
[0137]
按照该测试用例的内容调用测试接口,从该测试接口接收该测试用例的实际覆盖行数;
[0138]
根据该实际覆盖行数确定该测试用例的实际覆盖率;
[0139]
根据该测试用例的实际覆盖率及预先设定的目标覆盖率,对该测试用例的质量进行评估。
[0140]
在一些实施方式中,该判别模块620还用于,在该测试用例的实际覆盖率大于该预先设定的目标覆盖率的情况下,对该目标覆盖率进行修改,使修改后的目标覆盖率等于该测试用例的实际覆盖率。
[0141]
在一些实施方式中,该判别模块620用于:
[0142]
在该测试用例的质量不满足预定要求、并在该测试用例的质量比上一次得到的测试用例的质量下降的情况下,按照与上一次调整方向相反的方向、再次调整该测试用例生成网络的参数;或者,
[0143]
在该测试用例的质量不满足预定要求、并在该测试用例的质量比上一次得到的测试用例的质量提升的情况下,按照与上一次调整方向相同的方向、再次调整该测试用例生成网络的参数。
[0144]
本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
[0145]
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0146]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0147]
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算
装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0148]
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
[0149]
设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0150]
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如测试用例生成方法。例如,在一些实施例中,测试用例生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的测试用例生成方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行测试用例生成方法。
[0151]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0152]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0153]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0154]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
[0155]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0156]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0157]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0158]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1