CN115292155B - 测试用例生成方法、装置以及车辆 - Google Patents
测试用例生成方法、装置以及车辆 Download PDFInfo
- Publication number
- CN115292155B CN115292155B CN202210715564.8A CN202210715564A CN115292155B CN 115292155 B CN115292155 B CN 115292155B CN 202210715564 A CN202210715564 A CN 202210715564A CN 115292155 B CN115292155 B CN 115292155B
- Authority
- CN
- China
- Prior art keywords
- test case
- test
- vector
- trained
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 363
- 238000000034 method Methods 0.000 title claims abstract description 69
- 239000013598 vector Substances 0.000 claims abstract description 161
- 238000012549 training Methods 0.000 claims description 151
- 238000013101 initial test Methods 0.000 claims description 25
- 230000011218 segmentation Effects 0.000 claims description 23
- 238000000605 extraction Methods 0.000 claims description 7
- 230000000875 corresponding effect Effects 0.000 description 30
- 230000006870 function Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种测试用例生成方法、装置以及车辆。所述方法包括:获取噪音向量;将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量;基于所述测试用例向量和预先生成的字典,生成测试用例。通过上述方式使得,可以将噪音向量输入预先训练好的测试用例生成模型,以得到测试用例向量,从而可以基于测试用例向量和预先生成的字典,自动生成测试用例,提高了测试用例的生成效率。
Description
技术领域
本申请涉及汽车技术领域,更具体地,涉及一种测试用例生成方法、装置以及车辆。
背景技术
随着计算机技术的发展,各种软件开发项目也逐渐增多,为了使开发的项目可以正常使用,通常需要对项目的各个功能模块进行测试。在相关方式中,测试人员可以基于测试需求人为地编写测试用例。但相关方式中,测试用例的生成效率还有待提高。
发明内容
鉴于上述问题,本申请提出了一种测试用例生成方法、装置以及车辆,以实现改善上述问题。
第一方面,本申请提供了一种测试用例生成方法,所述方法包括:获取噪音向量;将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量;基于所述测试用例向量和预先生成的字典,生成测试用例。
第二方面,本申请提供了一种测试用例生成装置,所述装置包括:噪音向量获取单元,用于获取噪音向量;测试用例向量获取单元,用于将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量;测试用例生成单元,用于基于测试用例向量和预先生成的字典,生成测试用例。
第三方面,本申请提供了一种车辆,包括处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请提供的一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
本申请提供的一种测试用例生成方法、装置、车辆以及存储介质,在获取噪音向量后,将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,基于所述测试用例向量和预先生成的字典,生成测试用例。通过上述方式使得,可以将噪音向量输入预先训练好的测试用例生成模型,以得到测试用例向量,从而可以基于测试用例向量和预先生成的字典,自动生成测试用例,提高了测试用例的生成效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提出的一种测试用例生成方法的流程图;
图2示出了本申请提出的一种测试用例生成模型的结构示意图;
图3示出了本申请图1中S120的一种实施例方式的流程图;
图4示出了本申请提出的一种基于测试用例向量生成测试用例的示意图;
图5示出了本申请另一实施例提出的一种测试用例生成方法的流程图;
图6示出了本申请图5中S210的一种实施例方式的流程图;
图7示出了本申请提出的一种对初始测试需求进行信息提取的结构的示意图;
图8示出了本申请提出的一种基于标准化测试需求以及标准化测试用例生成训练数据的示意图;
图9示出了本申请提出的一种字典更新方法的流程图;
图10示出了本申请又一实施例提出的一种测试用例生成方法的流程图;
图11示出了本申请提出的一种满足第一目标条件的损失函数的示意图;
图12示出了本申请提出的一种满足第二目标条件的损失函数的示意图;
图13示出了本申请实施例提出的一种测试用例生成装置的结构框图;
图14示出了本申请提出的一种车辆的结构框图;
图15是本申请实施例的用于保存或者携带实现根据本申请实施例的测试用例生成方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,发明人提出了一种测试用例生成方法、装置以及车辆,在获取噪音向量后,将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,基于所述测试用例向量和预先生成的字典,生成测试用例。通过上述方式使得,可以将噪音向量输入预先训练好的测试用例生成模型,以得到测试用例向量,从而可以基于测试用例向量和预先生成的字典,自动生成测试用例,提高了测试用例的生成效率。
为了更好地理解本申请实施例的方案,下面先对本申请实施例所使用的技术名词解释。
泄露生成对抗网络(Leak Generative Adversarial Network,LeakGAN):可以指一种适用于长文本场景的生成对抗网络,LeakGAN可以把判别器的特征信息泄露到生成器中,指导生成器生成与真实样本相似的样本,从而可以提高生成器在长本文场景中的样本生成质量与稳定性,弥补了传统循环网络与对抗模型在长文本生成上的不足。
系统需求的约束自然语言(Control Natural Language for SystemRequirement,SysReq-CNL):可以指一种测试需求的编写方法,该方法可以将基于自然语言的测试需求/测试用例的语法、结构、对象等进行标准化处理,以得到简短的测试信息,从而减少歧义并使测试需求简单易懂,便于测试用例的书写。
嵌入技术(embedding):是指通过全连接层将稀疏向量转化为稠密向量的技术,embedding可以是一种查表操作,embedding向量表可以是一种参数矩阵,参数矩阵的初始值可以是通过随机初始化得到的。
下面将结合附图对本申请的实施例进行介绍。
请参阅图1,本申请提供的一种测试用例生成方法,所述方法包括:
S110:获取噪音向量。
其中,噪音向量可以指从某种数学分布上取得的数字向量,该数字向量可以是多维向量,每一维可以表征一种特征。
作为一种方式,可以通过数学库函数(如python中的numpy等)获取噪音向量。示例性的,可以通过numpy生成高斯分布的噪音(白噪音),再从高斯分布的噪音中获取噪音向量。
S120:将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量。
在本申请实施例中,如图2所示,测试用例生成模型可以包括嵌入网络、主干网络和逆嵌入网络。嵌入网络可以用于对噪音向量进行编码,嵌入网络可以是嵌入层(embedding layer),嵌入层可以包括全连接层;主干网络可以用于生成基于嵌入技术编码的测试用例,主干网络可以为LeakGAN中的生成器;逆嵌入网络可以用于解码测试用例。
作为一种方式,如图3所示,所述将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,包括:
S121:将所述噪音向量输入所述嵌入网络,得到稠密噪音向量。
其中,稠密噪音向量是指可以表征噪音向量中每个维度的特征之间的关联的稠密向量。
作为一种方式,可以将噪音向量输入嵌入网络,使得嵌入网络可以基于线性变换(查表操作)对噪音向量进行编码得到的稠密噪音向量,也就是将字典可识别的特征独立的噪音向量转化为包含特征相关性的稠密噪音向量。示例性的,输入的噪音向量可以为:2098 133 35 52 131 149 42 88 86 107 62 8 130 63 5 42 20 94 130 35 42 117 133 7829 26 151 110,稠密噪音向量可以为:0 1 2 6 8 12 19 20 13 11 5 4 0 0 0 0。
S122:将所述稠密噪音向量输入所述主干网络,得到参考测试用例向量。
其中,测试用例向量可以为表征测试用例的编码向量。
作为一种方式,可以将稠密噪音向量输入主干网络,以使主干网络可以生成参考测试用例向量。
S123:将所述参考测试用例向量输入所述逆嵌入网络,得到所述测试用例向量,所述逆嵌入网络用于将所述参考测试用例向量转化为所述字典可识别的向量。
其中,测试用例向量可以为表征测试用例的解码向量。
作为一种方式,可以将参考测试用例向量输入逆嵌入网络,使得逆嵌入网络可以基于反向的线性计算(查表)对参考测试用例向量进行解码得到测试用例向量,也就是将基于嵌入网络编码得到参考测试用例向量转化为字典可识别的测试用例向量。
S130:基于所述测试用例向量和预先生成的字典,生成测试用例。
其中,预先生成的字典可以包括分词和分词对应的编码,一个单词或标点符号可以为一个分词,分词对应的编码可以为数字编码,如;0、1、2、...、N(N为正整数)等。
作为一种方式,可以将测试用例向量与编码进行匹配,得到测试分词,再基于测试分词生成测试用例。
可选的,如图4所示,可以将测试用例向量中的每一维对应的数字分别与字典中的编码进行匹配,以得到数字对应的分词,再基于分词在向量中的顺序将多个分词拼接为测试用例。
本实施例提供的一种测试用例生成方法,在获取噪音向量后,将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,基于所述测试用例向量和预先生成的字典,生成测试用例。通过上述方式使得,可以将噪音向量输入预先训练好的测试用例生成模型,以得到测试用例向量,从而可以基于测试用例向量和预先生成的字典,自动生成测试用例,提高了测试用例的生成效率。
请参阅图5,本申请提供的一种测试用例生成方法,所述方法包括:
S210:获取训练数据,所述训练数据包括标准化测试需求以及所述标准化测试需求对应的标准化测试用例。
作为一种方式,如图6所示,获取训练数据,包括:
S211:获取初始测试需求,所述初始测试需求表征基于自然语言进行描述的测试需求。
其中,自然语言(Natural language)可以指一种自然地随文化演化的语言,例如,汉语、英语、日语等。测试需求可以指模块/组件/系统中能被一个或多个测试用例验证的条目或事件,例如,功能、事务、特性、质量属性或者结构化元素以及上述内容的整合等。
作为一种方式,可以将测试人员基于实际的开发场景以自然语言进行编写的测试需求作为初始测试需求。
可选的,初始测试需求可以是基于一个模块/组件/系统的某个功能、一个模块/组件/系统的多个功能以及多个个模块/组件/系统的交互进行编写的。初始测试需求可以是正向验证也可以是反向验证。
以汽车领域内的测试为例,基于车辆的配电功能模块编写的反向验证的初始测试需求可以为:当车辆模式信号的值为0(正常模式)、使用模式信号的值为0(待机模式)、汽车左前大灯供电端口错误状态信号为0(无错误),并且车速小于等于4km/h时,中央控制器(Central Control Unit,CCU)会将汽车左前大灯供电信号的信号值置0,即左前大灯不上电。
该初始测试需求的正向验证可以为:当车辆模式信号的值为0(正常模式)、使用模式信号的值为0(待机模式)、汽车左前大灯供电端口错误状态信号为0(无错误),并且车速大于等于4km/h时,CCU会将汽车左前大灯供电信号的信号值置1,即左前大灯上电。
S212:基于预先设置的规则对所述初始测试需求进行信息提取,以得到所述标准化测试需求,所述标准化测试需求表征基于所述规则对应的约束自然语言进行描述的测试需求。
其中,预先设置的规则可以指基于SysReq-CNL方法设置的规则,预先设置的规则可以为:触发条件—执行者—执行动作。
作为一种方式,可以基于预先设置的规则提取出初始测试需求中的信息(如:触发条件、执行者、执行动作),以得到所述标准化测试需求。
可选的,由于初始测试需求可以包含多个模块间的交互,则触发条件、执行者、执行动作也可能与多个模块相关,因此可以基于预先设置的规则以更具体的结构对初始测试需求进行信息提取。
在本申请实施例中,更具体的结构可以如图7所示,该结构可以通过先说明前置信号的状态或阐述功能触发所需的信号动作,再说明动作结果将使某(或某些)信号的值发生改变的方式对初始测试需求进行信息提取。其中,对于触发条件部分,时间描述词“When”可以表征前置条件或动作信号需要被改变的时刻,“When”后可以接前述的前置条件或动作信号的信号名“input signal name”并通过动词/助动词“is/was/becomes”来反映动作信号的执行动作,然后接“Input value in boolen or integer value”来说明信号需要被设置的值(为二进制值或整数值,下同),以此完成对某一信号变化过程的描述。当多个信号作为前置条件或者某一信号有多个取值时,可以选取“or”、“And”或“Comma(逗号)”完成连接,直至前置信号全部被描述。
对于执行者以及执行动作部分,“system”可以表示当前需求中执行相应动作的模块/组件/系统的名称,同时,为了保证语义的连贯性,可以在“system”前使用逗号“comma”与触发条件进行连接,以及在“system”后通过“shall assign”或“shall reset”等表肯定的动作连接词连接某信号值的改变。在最后可以通过“output signal name”和“to outputvalue in boolen or integer”分别声明输出的信号名称以及信号名称对应的信号值。其中,如果有多个信号被赋值,则可以通过“and”和“Comma”进行循环,直至完成一个初始测试需求的信息提取。
可选的,可以通过编写相应的代码实现基于预先设置的规则以更具体的结构对初始测试需求进行信息提取。
以汽车领域内的测试为例,初始测试需求可以为:当车辆模式信号的值为0(正常模式)、使用模式信号的值为0(待机模式)、汽车左前大灯供电端口错误状态信号为0(无错误),并且车速小于等于4km/h时,中央控制器(Central Control Unit,CCU)会将汽车左前大灯供电信号的信号值置0,即左前大灯不上电。基于预先设置的规则对该初始测试需求进行信息提取,得到的标准化测试需求可以为:When vehmode becomes 0and usagemodebecomes 0and FLLampCtlUnitPowerFaultSt becomes 0and Vehspd less than 4,CCUshall asign FLLampCtlUnitPowerSup to 0。
在本申请实施例中,预先设置的规则的语言逻辑简单且可以用于描述各种开发场景下的初始测试需求,提高了本申请提出的测试用例生成方法的适用性和灵活性。
S213:对所述标准化测试需求进行信息提取,以得到所述标准化测试用例。
作为一种方式,可以将标准化测试需求按照“条件—结果”的方式进行信息提取,以得到标准化测试用例。示例性的,标准化测试需求可以为“When vehmode becomes 0andusagemode becomes 0and FLLampCtlUnitPowerFaultSt becomes 0and Vehspd lessthan 4,CCU shall asign FLLampCtlUnitPowerSup to 0”,则标准化测试用例可以为:“Condition:vehmode=0usagemode=0FLLampCtlUnitPowerFaultSt=0wehspd=4Result:FLLampCtlUnitPowerSup=0”。
S214:基于所述标准化测试需求和所述标准化测试用例,得到所述训练数据。
其中,标准化测试需求和标准化测试用例可以有多条,每条标准化测试需求和标准化测试用例可以各自对应有多个分词。训练数据可以有多条,每条训练数据可以包括一条标准化测试需求以及该标准化测试需求对应的标准化测试用例。
作为一种方式,可以基于多条标准化测试需求和标准化测试用例,得到标准化测试需求和标准化测试用例各自对应的多个分词;基于预先生成的字典获取多个分词各自对应的编码,得到训练数据。
示例性的,字典可以如表1所示,则可以按照图8所示的方法,将所有的分词映射为编码,基于编码得到表2所示的多条训练数据。
表1
分词 | 编码 |
When | 1 |
vehmode | 2 |
becomes | 3 |
0 | 4 |
and | 5 |
usagemode | 6 |
... | ... |
表2
可选的,若基于预先生成的字典获取分词对应的编码失败,则为编码获取失败的分词设置对应的新编码;基于编码获取失败的分词以及新编码,更新字典。
其中,作为一种方式,如图9所示,可以先基于步骤S1将每个分词分别与字典中的分词进行匹配,再基于步骤S2判断是否匹配成功,若匹配成功,则获取分词对应的编码成功,可以基于步骤S3将字典中匹配成功的分词对应的编码作为该分词的编码;若匹配不成功,则获取分词对应的编码失败,表明该分词为新的分词,则可以基于步骤S4为该分词分配一个未在字典中出现的编码,并将该分词以及分配好的编码存储进字典,以实现更新字典的目的。
S220:基于所述训练数据对初始生成对抗模型进行训练,以得到测试用例生成模型。
其中,初始生成对抗模型可以包括测试用例鉴别器和测试用例生成器,测试用例鉴别器网络可以用于判断输入的数据是否为真实的数据,真实的数据可以指训练数据,生成器网络可以用于生成新的测试用例。
作为一种方式,可以基于训练数据对初始生成对抗模型中的鉴别器和生成器进行交替训练,以得到测试用例生成模型。
可选的,由表2可知,每条训练数据的编码长度可以是不同的,为了保证模型的训练效果,可以将每条数据设置为与最长的训练数据相同的长度,对于编码长度不足的,可以对训练数据补0。
S230:获取噪音向量。
S240:将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量。
S250:基于所述测试用例向量和预先生成的字典,生成测试用例。
本实施例提供的一种测试用例生成方法,通过上述方式使得,可以将噪音向量输入预先训练好的测试用例生成模型,以得到测试用例向量,从而可以基于测试用例向量和预先生成的字典,自动生成测试用例,提高了测试用例的生成效率。并且,在本实施例中,可以通过预先设置的规则对初始测试需求进行信息提取,得到标准化测试需求以及标准化测试需求对应的标准测试用例,进而基于预先设置的字典将标准化测试需求和标准测试用例转化为可帮助初始生成对抗模型进行训练的训练数据,从而可以提高测试用例生成模型的准确性,使生成的测试用例更符合对应的测试场景。
请参阅图10,本申请提供的一种测试用例生成方法,所述方法包括:
S310:获取训练数据,所述训练数据包括标准化测试需求以及所述标准化测试需求对应的标准化测试用例。
S320:基于所述训练数据,获取预训练数据。
其中,预训练数据可以指用于对初始生成对抗模型进行预训练的训练数据。
作为一种方式,可以基于随机数种子从多条训练数据中抽取部分训练数据作为预训练数据。
作为另一种方式,可以将多条训练数据平均分成多份训练数据,从多份训练数据任意选取一份及以上训练数据作为预训练数据。
作为又一种方式,可以直接将训练数据作为预训练数据。
S330:基于所述预训练数据对所述测试用例鉴别器和所述测试用例生成器进行预训练,以得到预训练后的初始生成对抗模型,若所述预训练后的初始生成对抗模型满足第一目标条件,则将所述预训练后的初始生成对抗模型做为预训练生成对抗模型,所述第一目标条件为预训练后的测试用例生成器的输出结果开始存在与所述预训练数据相同的特征。
其中,初始生成对抗模型可以包括测试用例鉴别器和测试用例生成器。
作为一种方式,在预训练过程中,可以基于预训练数据对测试用例鉴别器和测试用例生成器进行多次交替训练,以得到预训练后的初始生成对抗模型,若预训练后的初始生成对抗模型满足第一目标条件,则将预训练后的初始生成对抗模型做为预训练生成对抗模型。
在本申请实施例中,可以对预训练数据设置标签,该标签可以表征预训练数据为真实的训练数据。预训练过程下的测试用例生成器的输出结果可以表征模拟预训练数据生成的训练数据,可以对输出结果设置标签,该标签可以表征输出结果为假的训练数据。
可选的,在每次交替训练时,可以先保持测试用例生成器中的参数不变,训练测试用例鉴别器;再保持测试用例鉴别器中的参数不变,训练测试用例生成器。
其中,在第一次训练测试用例鉴别器时,可以将预训练数据输入测试用例鉴别器进行训练,在之后每次训练测试用例鉴别器的中可以将预训练数据以及上一次测试用例生成器输出的结果输入测试用例鉴别器进行训练。在每次训练测试用例生成器时,则可以将随机生成的多条噪音数据输入测试用例生成器进行训练。
在每次交替训练的过程中,测试用例鉴别器的训练目标是尽可能正确地区分输入的数据是真实的训练数据还是假的训练数据,测试用例鉴别器可以鉴别器损失函数指导参数更新,以达到训练目标。鉴别器损失函数的计算公式如下:
其中,m可以表示预训练数据和生成训练数据的数量,x(i)可以为预训练数据,z(i)可以为噪音数据,D(x(i))可以为预训练数据输入到测试用例鉴别器后的输出,G(z(i)可以为噪音数据输入到测试用例生成器后的生成的假的训练数据,D(G(z(i)))可以为生成器生成的假的训练数据输入测试用例鉴别器后的输出。为了达到目标,需要lossD尽可能的大。
在每次交替训练的过程中,测试用例生成器的训练目标是尽可能生成与预训练数据具有相同特征的数据,以“欺骗”测试用例鉴别器,测试用例生成器可以生成器损失函数指导参数更新,以达到训练目标。生成器损失函数的计算公式如下:
其中,m可以表示生成训练数据的数量,z(i)可以为噪音数据,D(x(i))可以为预训练数据输入到测试用例鉴别器后的输出,G(z(i)可以为噪音数据输入到测试用例生成器后的生成的假的训练数据,D(G(z(i)))可以为生成器生成的假的训练数据输入测试用例鉴别器后的输出。为了达到目标,需要lossG尽可能的小。
由于第一目标条件为预训练后的测试用例生成器的输出结果开始存在与预训练数据相同的特征,也就是说需要测试用例生成器开始学习到向预训练数据模仿的方法,并输出可以在一定程度上“欺骗”测试用例鉴别器的输出结果。因此,可以通过观察鉴别器损失函数的变化趋势确定是否满足第一目标条件,若鉴别器损失函数的值整体呈开始下降趋势,并且鉴别器损失函数的值在一定范围内稳定波动(如图11所示),则可以确定满足第一目标条件。
并且,为了提高模型的训练效率,初始生成对抗模型可以借鉴LeakGAN中的思想,即可以从测试用例鉴别器中泄露特征信息指导测试用例生成器尽快生成与真实训练数据相同的数据。
S340:基于所述训练数据对所述预训练生成对抗模型进行训练,以得到训练后的预训练生成对抗模型,若所述训练后的预训练生成对抗模型满足第二目标条件,则将所述训练后的预训练生成对抗模型中的测试用例生成器做为所述测试用例生成模型,所述第二目标条件为所述训练后的测试用例生成器的性能与所述训练后的测试用例鉴别器的性能达到动态平衡。
作为一种方式,在训练过程中,可以基于训练数据对经过预训练得到的测试用例鉴别器和测试用例生成器进行多次交替训练,以得到训练后的预训练生成对抗模型,若训练后的预训练生成对抗模型满足第二目标条件,则可以将训练后的预训练生成对抗模型中的测试用例生成器做为测试用例生成模型。
可选的,该训练过程可以与步骤S330的预训练过程相同,只是由于预训练的目的仅仅是为了使测试用例生成器开始知道应当如何模仿真实的训练数据,而本训练过程的目的是为了输出与真实训练数据接近的输出结果,因此,相较于预训练而言,本训练过程更为精细,则本训练过程对应的训练步长可以小于预训练过程的训练步长。
在本申请实施例中,由于训练数据可以包含多个模块之间的交互,因此基于本实施例训练得到的测试用例生成模型可以生成多模块交互的测试用例,并且模型训练具有不确定性以及不可解释性,从而可以生成意想不到的具有模块交互能力的测试用例,进而丰富了测试用例的测试场景,提高了测试的全面性。
由于第二目标条件为训练后的测试用例生成器的性能与训练后的测试用例鉴别器的性能达到动态平衡。也就是测试用例鉴别器制约着测试用例生成器无法进一步地缩小生成的数据与真实数据之间的差距,而测试用例生成器制约着测试用例鉴别器无法进一步地扩大生成的数据与真实数据之间的差距。因此,可以通过观察鉴别器损失函数以及生成器损失函数的变化趋势确定是否满足第二目标条件,若鉴别器损失函数以及生成器损失函数的值整体均呈开始下降趋势,并且鉴别器损失函数(如图12左图所示)以及生成器损失函数(如图12右图所示)的值均在一定范围内稳定波动,则可以确定满足第二目标条件。
S350:获取噪音向量。
S360:将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量。
S370:基于所述测试用例向量和预先生成的字典,生成测试用例。
本实施例提供的一种测试用例生成方法,通过上述方式使得,可以将噪音向量输入预先训练好的测试用例生成模型,以得到测试用例向量,从而可以基于测试用例向量和预先生成的字典,自动生成测试用例,提高了测试用例的生成效率。并且,在本实施例中,可以先基于预训练数据对初始生成对抗模型进行预训练得到预训练初始生成对抗模型,再基于训练数据对预训练生成对抗模型进行训练得到测试用例生成模型,使得测试用例生成模型可以自动生成测试用例,从而提高了测试用例的生成效率。
请参阅图13,本申请提供的一种测试用例生成装置600,所述装置包括:
噪音向量获取单元610,用于获取噪音向量。
测试用例向量获取单元620,用于将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量。
测试用例生成单元630,用于基于测试用例向量和预先生成的字典,生成测试用例。
作为一种方式,所述测试用例生成模型包括嵌入网络、主干网络和逆嵌入网络,测试用例向量获取单元620具体用于将所述噪音向量输入所述嵌入网络,得到稠密噪音向量;将所述稠密噪音向量输入所述主干网络,得到参考测试用例向量;将所述参考测试用例向量输入所述逆嵌入网络,得到所述测试用例向量,所述逆嵌入网络用于将所述参考测试用例向量转化为所述字典可识别的向量。
作为一种方式,所述预先生成的字典包括分词和分词对应的编码,测试用例生成单元630具体用于将所述测试用例向量与所述编码进行匹配,得到测试分词;基于所述测试分词生成测试用例。
其中,所述装置600还包括:
模型生成单元640,用于获取训练数据,所述训练数据包括标准化测试需求以及所述标准化测试需求对应的标准化测试用例;基于所述训练数据对初始生成对抗模型进行训练,以得到测试用例生成模型。
作为一种方式,模型生成单元640具体用于获取初始测试需求,所述初始测试需求表征基于自然语言进行描述的测试需求;基于预先设置的规则对所述初始测试需求进行信息提取,以得到所述标准化测试需求,所述标准化测试需求表征基于所述规则对应的约束自然语言进行描述的测试需求;对所述标准化测试需求进行信息提取,以得到所述标准化测试用例;基于所述标准化测试需求和所述标准化测试用例,得到所述训练数据。
其中,可选的,所述标准化测试需求和所述标准化测试用例有多条,每条所述标准化测试需求和所述标准化测试用例各自对应有多个分词,模型生成单元640具体用于基于所述多条标准化测试需求和所述标准化测试用例,得到所述标准化测试需求和所述标准化测试用例各自对应的多个分词;基于预先生成的字典获取所述多个分词各自对应的编码,得到所述训练数据。
可选的,模型生成单元640具体用于若基于所述预先生成的字典获取分词对应的编码失败,则为编码获取失败的分词设置对应的新编码;基于所述编码获取失败的分词以及所述新编码,更新所述字典。
作为另一种方式,所述初始生成对抗模型包括测试用例鉴别器和测试用例生成器,模型生成单元640具体用于基于所述训练数据,获取预训练数据;基于所述预训练数据对所述测试用例鉴别器和所述测试用例生成器进行预训练,以得到预训练后的初始生成对抗模型,若所述预训练后的初始生成对抗模型满足第一目标条件,则将所述预训练后的初始生成对抗模型做为预训练生成对抗模型,所述第一目标条件为预训练后的测试用例生成器的输出结果开始存在与所述预训练数据相同的特征;基于所述训练数据对所述预训练生成对抗模型进行训练,以得到训练后的预训练生成对抗模型,若所述训练后的预训练生成对抗模型满足第二目标条件,则将所述训练后的预训练生成对抗模型中的测试用例生成器做为所述测试用例生成模型,所述第二目标条件为所述训练后的测试用例生成器的性能与所述训练后的测试用例鉴别器器的性能达到动态平衡。
下面将结合图14对本申请提供的一种车辆进行说明。
请参阅图14,基于上述的测试用例生成方法、装置,本申请实施例还提供的另一种可以执行前述测试用例生成方法的车辆100。车辆100包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个车辆100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行车辆100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端200在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图15,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读存储介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
综上所述,本申请提供的一种测试用例生成方法、装置以及车辆,在获取噪音向量后,将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,基于所述测试用例向量和预先生成的字典,生成测试用例。通过上述方式使得,可以将噪音向量输入预先训练好的测试用例生成模型,以得到测试用例向量,从而可以基于测试用例向量和预先生成的字典,自动生成测试用例,提高了测试用例的生成效率。最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种测试用例生成方法,其特征在于,所述方法包括:
获取噪音向量;
将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,所述测试用例生成模型包括嵌入网络、主干网络和逆嵌入网络;
所述将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,包括:
将所述噪音向量输入所述嵌入网络,得到稠密噪音向量,所述稠密噪音向量为用于表征所述噪音向量中每个维度的特征之间的关联的稠密向量;
将所述稠密噪音向量输入所述主干网络,得到参考测试用例向量;
将所述参考测试用例向量输入所述逆嵌入网络,得到所述测试用例向量,所述逆嵌入网络用于将所述参考测试用例向量转化为字典可识别的向量;
基于所述测试用例向量和预先生成的字典,生成测试用例。
2.根据权利要求1所述的方法,其特征在于,所述预先生成的字典包括分词和分词对应的编码,基于测试用例向量和预先生成的字典,得到测试用例,包括:
将所述测试用例向量与所述编码进行匹配,得到测试分词;
基于所述测试分词生成测试用例。
3.根据权利要求1所述的方法,其特征在于,所述获取噪音向量之前,还包括:
获取训练数据,所述训练数据包括标准化测试需求以及所述标准化测试需求对应的标准化测试用例;
基于所述训练数据对初始生成对抗模型进行训练,以得到测试用例生成模型。
4.根据权利要求3所述的方法,其特征在于,所述获取训练数据,包括:
获取初始测试需求,所述初始测试需求表征基于自然语言进行描述的测试需求;
基于预先设置的规则对所述初始测试需求进行信息提取,以得到所述标准化测试需求,所述标准化测试需求表征基于所述规则对应的约束自然语言进行描述的测试需求;
对所述标准化测试需求进行信息提取,以得到所述标准化测试用例;
基于所述标准化测试需求和所述标准化测试用例,得到所述训练数据。
5.根据权利要求4所述的方法,其特征在于,所述标准化测试需求和所述标准化测试用例有多条,每条所述标准化测试需求和所述标准化测试用例各自对应有多个分词,所述基于所述标准化测试需求和所述标准化测试用例,得到所述训练数据,包括:
基于所述多条标准化测试需求和所述标准化测试用例,得到所述标准化测试需求和所述标准化测试用例各自对应的多个分词;
基于预先生成的字典获取所述多个分词各自对应的编码,得到所述训练数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若基于所述预先生成的字典获取分词对应的编码失败,则为编码获取失败的分词设置对应的新编码;
基于所述编码获取失败的分词以及所述新编码,更新所述字典。
7.根据权利要求3所述的方法,其特征在于,所述初始生成对抗模型包括测试用例鉴别器和测试用例生成器,所述基于所述训练数据对初始生成对抗模型进行训练,以得到测试用例生成模型,包括:
基于所述训练数据,获取预训练数据;
基于所述预训练数据对所述测试用例鉴别器和所述测试用例生成器进行预训练,以得到预训练后的初始生成对抗模型,若所述预训练后的初始生成对抗模型满足第一目标条件,则将所述预训练后的初始生成对抗模型做为预训练生成对抗模型,所述第一目标条件为预训练后的测试用例生成器的输出结果开始存在与所述预训练数据相同的特征;
基于所述训练数据对所述预训练生成对抗模型进行训练,以得到训练后的预训练生成对抗模型,若所述训练后的预训练生成对抗模型满足第二目标条件,则将所述训练后的预训练生成对抗模型中的测试用例生成器做为所述测试用例生成模型,所述第二目标条件为所述训练后的测试用例生成器的性能与所述训练后的测试用例鉴别器器的性能达到动态平衡。
8.一种测试用例生成装置,其特征在于,所述装置包括:
噪音向量获取单元,用于获取噪音向量;
测试用例向量获取单元,用于将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,所述测试用例生成模型包括嵌入网络、主干网络和逆嵌入网络;所述将所述噪音向量输入预先训练好的测试用例生成模型,得到测试用例向量,包括:将所述噪音向量输入所述嵌入网络,得到稠密噪音向量,所述稠密噪音向量为用于表征所述噪音向量中每个维度的特征之间的关联的稠密向量;将所述稠密噪音向量输入所述主干网络,得到参考测试用例向量;将所述参考测试用例向量输入所述逆嵌入网络,得到所述测试用例向量,所述逆嵌入网络用于将所述参考测试用例向量转化为字典可识别的向量;
测试用例生成单元,用于基于测试用例向量和预先生成的字典,生成测试用例。
9.一种车辆,其特征在于,包括处理器以及存储器;
一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个程序配置用于执行权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210715564.8A CN115292155B (zh) | 2022-06-22 | 2022-06-22 | 测试用例生成方法、装置以及车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210715564.8A CN115292155B (zh) | 2022-06-22 | 2022-06-22 | 测试用例生成方法、装置以及车辆 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115292155A CN115292155A (zh) | 2022-11-04 |
CN115292155B true CN115292155B (zh) | 2024-01-16 |
Family
ID=83820410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210715564.8A Active CN115292155B (zh) | 2022-06-22 | 2022-06-22 | 测试用例生成方法、装置以及车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115292155B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536595A (zh) * | 2018-04-09 | 2018-09-14 | 平安普惠企业管理有限公司 | 测试用例智能化匹配方法、装置、计算机设备及存储介质 |
CN109739759A (zh) * | 2018-12-28 | 2019-05-10 | 中核控制系统工程有限公司 | 一种验证黑盒测试用例设计完整性的方法 |
WO2020240572A1 (en) * | 2019-05-29 | 2020-12-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for training a discriminator |
CN112767951A (zh) * | 2021-01-22 | 2021-05-07 | 广东技术师范大学 | 一种基于深度稠密网络的语音转换可视化检测方法 |
CN113468071A (zh) * | 2021-07-23 | 2021-10-01 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 模糊测试用例生成方法、系统、计算机设备及存储介质 |
CN113516656A (zh) * | 2021-09-14 | 2021-10-19 | 浙江双元科技股份有限公司 | 一种基于ACGAN和Cameralink相机的缺陷图像数据处理仿真方法 |
CN113628338A (zh) * | 2021-07-19 | 2021-11-09 | 香港中文大学(深圳) | 一种采样重建方法、装置、计算机设备及存储介质 |
CN113946832A (zh) * | 2021-10-26 | 2022-01-18 | 北京工业大学 | 一种基于改进的生成对抗网络框架的漏洞挖掘方法 |
CN114116456A (zh) * | 2021-11-04 | 2022-03-01 | 广州市智能软件产业研究院 | 测试用例生成方法、系统及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210157312A1 (en) * | 2016-05-09 | 2021-05-27 | Strong Force Iot Portfolio 2016, Llc | Intelligent vibration digital twin systems and methods for industrial environments |
-
2022
- 2022-06-22 CN CN202210715564.8A patent/CN115292155B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536595A (zh) * | 2018-04-09 | 2018-09-14 | 平安普惠企业管理有限公司 | 测试用例智能化匹配方法、装置、计算机设备及存储介质 |
CN109739759A (zh) * | 2018-12-28 | 2019-05-10 | 中核控制系统工程有限公司 | 一种验证黑盒测试用例设计完整性的方法 |
WO2020240572A1 (en) * | 2019-05-29 | 2020-12-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for training a discriminator |
CN112767951A (zh) * | 2021-01-22 | 2021-05-07 | 广东技术师范大学 | 一种基于深度稠密网络的语音转换可视化检测方法 |
CN113628338A (zh) * | 2021-07-19 | 2021-11-09 | 香港中文大学(深圳) | 一种采样重建方法、装置、计算机设备及存储介质 |
CN113468071A (zh) * | 2021-07-23 | 2021-10-01 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 模糊测试用例生成方法、系统、计算机设备及存储介质 |
CN113516656A (zh) * | 2021-09-14 | 2021-10-19 | 浙江双元科技股份有限公司 | 一种基于ACGAN和Cameralink相机的缺陷图像数据处理仿真方法 |
CN113946832A (zh) * | 2021-10-26 | 2022-01-18 | 北京工业大学 | 一种基于改进的生成对抗网络框架的漏洞挖掘方法 |
CN114116456A (zh) * | 2021-11-04 | 2022-03-01 | 广州市智能软件产业研究院 | 测试用例生成方法、系统及计算机可读存储介质 |
Non-Patent Citations (4)
Title |
---|
Neural Network Embeddings for Test Case Prioritization;João Lousada等;《arXiv-Software Engineering》;第1-11页 * |
Test Case Generation Method based on Generative Adversarial Network;Jiaojiao Nie等;《Journal of Physics Conference Series》;第1-7页 * |
基于分词检索的测试用例复用设计与实现;姜晓梅;《万方数据库》;第21、24、33、35页 * |
软件测试用例自动生成系统的设计与实现;张民;《信息科技辑》(第05期);第5-42页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115292155A (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111243571B (zh) | 文本的处理方法、装置、设备及计算机可读存储介质 | |
CN111783478B (zh) | 机器翻译质量估计方法、装置、设备及存储介质 | |
CN111599340A (zh) | 一种多音字读音预测方法、装置及计算机可读存储介质 | |
CN112966713B (zh) | 基于深度学习的dga域名检测方法、装置及计算机设备 | |
CN116991711A (zh) | 一种测试用例的生成方法、装置、终端设备及存储介质 | |
CN111354354B (zh) | 一种基于语义识别的训练方法、训练装置及终端设备 | |
CN115292155B (zh) | 测试用例生成方法、装置以及车辆 | |
CN113515593A (zh) | 基于聚类模型的话题检测方法、装置和计算机设备 | |
US20230130662A1 (en) | Method and apparatus for analyzing multimodal data | |
CN115080748B (zh) | 一种基于带噪标签学习的弱监督文本分类方法和装置 | |
CN116738956A (zh) | 一种提示模板生成方法、装置、计算机设备及存储介质 | |
CN115879480A (zh) | 语义约束机器翻译方法、装置、电子设备及存储介质 | |
CN115687136A (zh) | 一种脚本程序处理方法、系统、计算机设备及介质 | |
CN115455949A (zh) | 中文语法纠错方法及系统、存储介质及终端 | |
CN116150311A (zh) | 文本匹配模型的训练方法、意图识别方法及装置 | |
CN114595701A (zh) | 翻译模型的处理方法、装置和计算机可读存储介质 | |
CN115525740A (zh) | 对话应答语句的生成方法、装置、电子设备及存储介质 | |
CN110728973A (zh) | 视频资源的输出方法和服务器 | |
CN115412335B (zh) | 5g电力物联网边缘设备漏洞检测方法、装置及系统 | |
CN116383367B (zh) | 对话系统冷启动阶段的数据处理方法、装置、设备及介质 | |
CN117556033B (zh) | 确定问答系统的嵌入模型参数的方法、装置及计算设备 | |
CN118012986A (zh) | 模型验证方法、装置、电子设备及存储介质 | |
CN117725179A (zh) | 相似问题的生成方法、装置、设备和介质 | |
CN114090773A (zh) | 短文本分类方法、系统、计算机设备和可读存储介质 | |
CN117273007A (zh) | 一种人工智能内容合成安全方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |