CN116909887A - 一种测试用例集生成方法、装置、设备及存储介质 - Google Patents

一种测试用例集生成方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116909887A
CN116909887A CN202310823006.8A CN202310823006A CN116909887A CN 116909887 A CN116909887 A CN 116909887A CN 202310823006 A CN202310823006 A CN 202310823006A CN 116909887 A CN116909887 A CN 116909887A
Authority
CN
China
Prior art keywords
vector
identification
processed
vector set
vectors
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.)
Pending
Application number
CN202310823006.8A
Other languages
English (en)
Inventor
孙霜
沈柳依
雷雨田
黄亮
杨明明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Technology Innovation Center
China Telecom Corp Ltd
Original Assignee
China Telecom Technology Innovation Center
China Telecom Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Technology Innovation Center, China Telecom Corp Ltd filed Critical China Telecom Technology Innovation Center
Priority to CN202310823006.8A priority Critical patent/CN116909887A/zh
Publication of CN116909887A publication Critical patent/CN116909887A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本申请提供了一种测试用例集生成方法、装置、设备及存储介质,包括:基于多个测试用例的标识向量生成待处理向量集;重复执行如下步骤:从待处理向量集中,选择适用度小于第一预设阈值的至少一个候选标识向量;根据至少一个候选标识向量,确定待处理向量集对应的交叉向量集;根据交叉向量集与待处理向量集的对比结果,对待处理向量集中包含的标识向量进行调整,得到下一轮迭代的待处理向量集;对下一轮迭代的标识向量的控制参数进行调整;直至迭代次数达到预设次数为止,将当前的待处理向量集作为目标标识向量集,并基于目标标识向量集内包含的标识向量对应的测试用例,生成目标测试用例集。通过上述方法能够快速得到准确的测试用例集。

Description

一种测试用例集生成方法、装置、设备及存储介质
技术领域
本申请涉及软件测试技术领域,具体涉及一种测试用例集生成方法、装置、设备及存储介质。
背景技术
测试用例是指对一项特定的软件产品进行测试任务的描述。对于任意一个测试任务,对应多个测试用例,然而在实际测试过程中,不同的测试顺序,其测试效果不同,而且可能不需要利用所有测试用例进行测试即可完成测试任务,因此如何从多个测试用例中确定最优的测试用例集是亟待解决的问题。
差分进化算法是一种基于群体差异的启发式随机搜索算法,也属于全局优化算法,在求解全局最优解的问题上被广泛应用。但是目前的差分进化算法在迭代的过程中,容易出现由于种群的多样性降低造成的陷入局部最优,以及收敛性能低的问题。
发明内容
本申请实施例提供了一种测试用例集生成方法、装置、设备及存储介质,能够快速得到准确的测试用例集。
第一方面,本申请实施例提供了一种测试用例集生成方法,所述方法包括:
获取与目标测试任务关联的多个测试用例的标识向量,并基于得到的多个标识向量生成待处理向量集;
重复执行如下步骤:
从待处理向量集中,选择适用度小于第一预设阈值的至少一个候选标识向量;所述适用度用于表征所述候选标识向量对应的测试用例适用的测试任务的数量;
根据所述至少一个候选标识向量,以及待处理向量集中的每个标识向量的控制参数,确定所述待处理向量集对应的交叉向量集;
将所述交叉向量集与待处理向量集进行对比,并根据对比结果对待处理向量集中包含的标识向量进行调整,得到下一轮迭代的待处理向量集;
若下一轮迭代待处理向量集的多样性值大于下一轮迭代的多样性概率阈值,则根据当前一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数;
直至迭代次数达到预设次数为止,将当前的待处理向量集作为目标标识向量集;
基于所述目标标识向量集内包含的标识向量对应的测试用例,生成目标测试用例集。
在一种可能的实施方式中,所述根据所述至少一个候选标识向量,以及待处理向量集中的每个标识向量的控制参数,确定所述待处理向量集对应的交叉向量集,包括:
从所述至少一个候选标识向量中随机选取一个标识向量作为目标候选标识向量;
基于所述目标候选标识向量、所述待处理向量集中的每个标识向量、以及每个标识向量的权重和放缩率,确定所述待处理向量集对应的变异向量集;
基于所述变异向量集和所述待处理向量集中每个标识向量的交叉概率,通过交叉操作得到所述待处理向量集对应的交叉向量集。
在一种可能的实施方式中,所述基于所述目标候选标识向量、所述待处理向量集中的每个标识向量、以及每个标识向量的权重和放缩率,确定所述待处理向量集对应的变异向量集,包括:
利用公式Vi=ω·Xi+F·(eliteX-Xi)+F·(Xr1-Xr2),分别确定所述待处理向量集中每个标识向量对应的变异向量;其中,Vi表示第i个标识向量对应的第i个变异向量,ω表示第i个标识向量的权重,Xi表示所述待处理向量集中第i个标识向量,eliteX表示目标候选标识向量,F表示第i个标识向量的放缩率,Xr1表示所述待处理向量集中第r1个标识向量,Xr2表示所述待处理向量集中第r2个标识向量;
基于每个标识向量对应的变异向量,确定所述变异向量集。
在一种可能的实施方式中,所述当前一轮迭代的多样性概率阈值通过如下方式确定:
从所述至少一个候选标识向量的适用度中,选择最大适用度;
根据所述最大适用度与所述待处理向量集中标识向量的平均适应度的差值,作为所述当前一轮迭代的多样性概率阈值。
在一种可能的实施方式中,所述根据当前一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,包括:
利用公式分别确定所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的每个标识向量的控制参数/>
其中,G+1表示下一轮迭代;i表示适用度大于第二预设阈值的第i个标识向量,G表示当前一轮迭代;为当前一轮迭代第i个标识向量的控制参数,eliteCPG为当前一轮迭代中所述至少一个候选标识向量的控制参数的加和,mean表示对所述加和取平均,r为第一预设系数。
在一种可能的实施方式中,所述方法还包括:
若下一轮迭代待处理向量集的多样性值不大于下一轮迭代的多样性概率阈值,则根据预设的控制参数取值范围的上限和下限,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数。
在一种可能的实施方式中,所述根据预设的控制参数取值范围的上限和下限,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,包括:
利用公式分别确定下一轮迭代的待处理向量集中适用度大于第二预设阈值的每个标识向量的控制参数/>
其中,G+1表示下一轮迭代;i表示适用度大于第二预设阈值的第i个标识向量;R为第二预设系数,CPU为控制参数取值范围的上限,CPL为控制参数取值范围的下限。
第二方面,本申请实施例提供了一种测试用例集生成装置,所述装置包括:
获取模块,用于获取与目标测试任务关联的多个测试用例的标识向量,并基于得到的多个标识向量生成待处理向量集;
迭代模块,用于重复执行如下步骤:
从待处理向量集中,选择适用度小于第一预设阈值的至少一个候选标识向量;所述适用度用于表征所述候选标识向量对应的测试用例适用的测试任务的数量;
将所述交叉向量集与待处理向量集进行对比,并根据对比结果对待处理向量集中包含的标识向量进行调整,得到下一轮迭代的待处理向量集;
若下一轮迭代待处理向量集的多样性值大于下一轮迭代的多样性概率阈值,则根据当前一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数;
生成模块,用于直至迭代次数达到预设次数为止;将当前的待处理向量集作为目标标识向量集;基于所述目标标识向量集内包含的标识向量对应的测试用例,生成目标测试用例集。
第三方面,本申请实施例提供了一种测试用例集生成设备,所述设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面的方法。
第四方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行上述第一方面的方法。
本申请实施例提供了一种测试用例集生成方法、装置、设备及存储介质,若当前种群(待处理向量集)呈现良好的多样性,则根据上一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整;即保持当前控制参数向择优个体参数学习,这有利于更快收敛到全局最优值;另外,本申请实施例在差分进化算法的变异步骤,采用了择优变异策略,即从待处理向量集中,选择适用度小于第一预设阈值的至少一个候选标识向量,既增大了搜索范围,又进一步保证了算法的收敛性能。
附图说明
图1为根据本发明示例性实施例示例的一种测试用例集生成方法流程示意图;
图2为根据本发明示例性实施例示例的一种迭代流程示意图;
图3为根据本发明示例性实施例示例的一种测试用例集生成方法具体流程示意图;
图4为根据本发明示例性实施例示例的一种测试用例集生成装置示意图;
图5为根据本发明示例性实施例示例的一种测试用例集生成设备示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本申请实施例中的专业术语进行介绍:
测试用例:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。
测试用例集:多个测试用例组成的集合,对于相同的测试任务来说,不同的测试用例集在测试任务上的执行情况(测试效果)不同,执行情况包括:测试用例总数、执行用例总数、未执行用例数、通过率、执行时间等。
差分进化算法:是一种高效的全局优化算法,也是基于群体的启发式搜索算法,种群中的每个个体对应一个解向量。包括:1、种群的初始化;2、变异操作;3、交叉操作;4、选择操作。其中,种群的初始化即为依据编码规则给出的种群的初始解,根据初始化方法的不同形式可以将其分成M类随机方法、定值设定法、两步式方法、混合方法和具体应用法等,本申请实施例不对种群初始化的方法进行具体限定。
对于差分进化算法还包括如下控制参数:
(1)种群大小:主要反映算法中种群信息量的大小,数值越大种群信息包含的越丰富,但是带来的后果就是计算量变大,不利于求解。数值越小,种群的多样性会受到限制,不利于算法求得全局最优解,甚至会导致搜索停滞,收敛性能差。
(2)交叉概率:主要反映的是在交叉的过程中,子代与父代、中间变异体之间交换信息量的大小程度。交叉概率的值越大,信息量交换的程度越大。反之,如果交叉概率的值偏小,将会使种群的多样性快速减小,不利于全局寻优。
(3)放缩率:主要影响算法的全局寻优能力。放缩率越小,算法对局部的搜索能力更好,放缩率越大算法越能跳出局部极小点,但是收敛速度会变慢。此外,F还影响种群的多样性。
基于差分进化算法全局寻优的能力,本申请实施例利用差分进化算法在目标测试任务的多个测试用例中选取最优的测试用例集。然而为了避免现有的差分进化算法中在迭代的过程中,容易出现由于种群的多样性降低造成的陷入局部最优,以及收敛性能低的问题,本申请实施例提供了一种测试用例集生成方法,如图1所示,该方法包括:
S101:获取与目标测试任务关联的多个测试用例的标识向量,并基于得到的多个标识向量生成待处理向量集;
在生成测试用例集之前,先采用随机的方式生成与目标测试任务相关联的多个测试用例,然后进行种群初始化操作,即基于多个测试用例得到相应的待处理向量集,初始化方法如上述实施例。
对于本申请实施例的应用场景,种群大小即为测试用例对应的标识向量的数量,种群的个体为每个测试用例的标识向量。其中,标识向量用于标识测试用例,种群的大小可以根据实际情况进行设置,可以为与目标测试任务相关联的全部测试用例的标识向量,也可以是部分测试用例的标识向量,标识向量可以为行向量,也可以为列向量,本申请不对种群的大小和向量的维数进行具体限定。将标识向量进行组合得到待处理向量集。
例如,测试用例A对应的标识向量为[1 0 0 0],测试用例B对应的标识向量为[0 10 0],测试用例C对应的标识向量为[0 0 1 0],测试用例D对应的标识向量为[0 0 0 1],测试用例A、测试用例B、测试用例C和测试用例D对应的待处理向量集为
S102:重复执行如下步骤:
本申请实施例提供的测试用例生成方法是基于差分进化算法实现的,该算法在迭代过程中,能够从与目标测试任务关联的测试用例中搜索最优的一组测试用例集,如图2所示,每一轮迭代都包括变异、交叉和选择的过程。
S201:从待处理向量集中,选择适用度小于第一预设阈值的至少一个候选标识向量;所述适用度用于表征所述候选标识向量对应的测试用例适用的测试任务的数量。
相比现有技术中的变异策略,本申请实施例采用了择优变异策略,即从待处理向量集中,选取了适应度小于第一预设阈值的至少一个候选标识向量,增加了种群的搜索范围。其中,测试用例的适用度可以通过Fitness函数进行计算,适应度越小,表示越优。
选取候选标识向量,可以预先设置一个第一预设阈值,然后选取适用度小于第一预设阈值的标识向量作为目标候选标识向量,例如标识向量的数量为20个,小于第一预设阈值的标识向量有8个;还可以将各标识向量按照适应度从小到大的顺序进行排序,然后选取前10%的标识向量作为候选标识向量,例如,标识向量的数量为20个,排序后,选取前10%的2个标识向量作为候选标识向量。
S202:根据所述至少一个候选标识向量,以及待处理向量集中的每个标识向量的控制参数,确定所述待处理向量集对应的交叉向量集。
根据S201中的实施方式确定候选标识向量后,即可根据至少一个候选标识向量对待处理向量集进行变异操作,进而得到待处理向量集对应变异向量集。
首先,需要从至少一个候选标识向量中随机选取一个标识向量作为目标候选标识向量;然后基于所述目标候选标识向量、所述待处理向量集中的每个标识向量、以及每个标识向量的权重和放缩率,确定所述待处理向量集对应的变异向量集。
进一步地,通过如下公式确定待处理向量集中每个标识向量对应的变异向量:
Vi=ω·Xi+F·(eliteX-Xi)+F·(Xr1-Xr2)
其中,Vi表示第i个标识向量对应的第i个变异向量,ω表示第i个标识向量的权重,Xi表示所述待处理向量集中第i个标识向量,eliteX表示目标候选标识向量,F表示第i个标识向量的放缩率,Xr1表示所述待处理向量集中第r1个标识向量,Xr2表示所述待处理向量集中第r2个标识向量。
目标候选标识向量具体可以通过公式eliteX=rand(sort(Fitness(Xi))*10%)实现,rand表示随机操作,sort表示选择操作,Fitness(Xi)表示第i个标识向量的适应度,*10%表示将各标识向量按照适应度从小到大的顺序进行排序,适应度排在前10%的标识向量。
基于每个标识向量对应的变异向量,确定所述变异向量集,即将各变异向量组合到一起,得到变异向量集。
本申请实施例采用的择优策略引入了除了交叉概率和放缩率以外的其它控制参数ω,确保了算法的收敛性能。
得到变异向量集后,即可基于变异向量集和待处理向量集中每个标识向量的交叉概率,通过交叉操作得到所述待处理向量集对应的交叉向量集,具体可以通过如下公式:
其中,G表示当前一轮迭代,ui,G为当前一轮迭代第i个标识向量对应的交叉向量,CR为待处理向量集中第i个标识向量对应的交叉概率,vi,G为当前一轮迭代通过上述实施方式得到的第i个标识向量对应的变异向量,xi,G为当前一轮迭代待处理向量集中第i个标识向量。
通过上述公式对待处理向量集中的每个标识向量进行判断,当CR>=预设的数值时,该标识向量对应的交叉向量为该标识向量对应变异向量,若CR<预设的数值,则该标识向量对应的交叉向量依旧是该标识向量。
S203:将所述交叉向量集与待处理向量集进行对比,并根据对比结果对待处理向量集中包含的标识向量进行调整,得到下一轮迭代的待处理向量集。
经过上述变异和交叉操作,得到交叉向量后,进一步地利用下述公式对待处理向量集中的标识向量进行调整,得到下一轮迭代的待处理向量集。
其中,G+1表示下一轮迭代,f(ui,G)表示第i个交叉向量的值,f(xi,G)表示第i个标识向量的值,xi,G+1表示下一轮迭代的待处理向量集中的第i个标识向量。通过上述公式,若第i个交叉向量的值小于第i个标识向量的值,则表明该交叉向量较优,因此选择ui,G作为下一轮迭代待处理向量集的标识向量。
基于上述S201~S203的实施方式,即可得到每一轮迭代的待处理向量集。
S204:若下一轮迭代待处理向量集的多样性值大于下一轮迭代的多样性概率阈值,则根据当前一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数;
本申请实施例除了利用择优变异策略保证收敛性以外,还通过在每一轮迭代中,对控制参数进行调整,以提高收敛的精度,另外,调整参数还可以确保种群的多样性,以避免陷入局部最优值。
在本申请实施例中,待调整的控制参数包括标识向量的权重、放缩率和交叉概率中的部分和全部,可以根据用户的实际需求进行控制参数的调整,例如,用户需求为尽力避免陷入局部最优值的情况,则可以选择仅调整交叉概率,此处不进行具体限定。
根据上述实施方式得到下一轮迭代的待处理向量集后,首先需要判断下一轮迭代待处理向量集的多样性值与下一轮迭代的多样性概率阈值的大小关系,以确定具体的控制参数调整策略。
本申请实施例提供的控制参数调整方式包括如下两种情况。
(1)下一轮迭代待处理向量集的多样性值大于对应的多样性概率阈值。
当确定下一轮迭代待处理向量集的多样性值大于对应的多样性概率阈值时,根据公式分别确定所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的每个标识向量的控制参数/>
其中,G+1表示下一轮迭代;i表示适用度大于第二预设阈值的第i个标识向量,G表示当前一轮迭代;为当前一轮迭代第i个标识向量的控制参数,eliteCPG为当前一轮迭代中所述至少一个候选标识向量的控制参数的加和,mean表示对所述加和取平均,r为第一预设系数。
在保证种群多样性的前提下,为了提高算法的运行效率,本申请实施例不对下一轮迭代的待处理向量集中每个标识向量的控制参数进行调整,而是选取部分标识向量,具体可以选取适应度小于第二预设阈值的标识向量,或者将所有的标识向量按照适应度从小到大的顺序进行排序,选取后40%的标识向量进行控制参数的调整。
在确定eliteCPG时,可以与上述实施例选取相同数量的候选标识向量(前10%),也可以与上述实施例不同,例如选取适应度排在前5的标识向量的控制参数进行加和,此处不进行具体限定。具体如下述公式:
eliteCPG=sum(top5(Fitness(XG))),其中,sum表示加和操作,top5表示将各标识向量按照适应度从小到大的顺序进行排序,选取适应度排在前5的标识向量。
(2)下一轮迭代待处理向量集的多样性值不大于对应的多样性概率阈值。
当确定下一轮迭代待处理向量集的多样性值大于对应的多样性概率阈值时,根据预设的控制参数取值范围的上限和下限,对所述下一轮迭代的待处理向量集中适用度小于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数。具体可以通过如下公式实现:
利用公式分别确定下一轮迭代的待处理向量集中适用度小于第二预设阈值的每个标识向量的控制参数/>
其中,G+1表示下一轮迭代;i表示适用度小于第二预设阈值的第i个标识向量;R为第二预设系数,可以是一个三维的随机向量,CPU为控制参数取值范围的上限,CPL为控制参数取值范围的下限。
例如,R为[1 2 1],CPU为[0.9 0.9 0.9],CPL为[0.1 0.2 0.2],CPU-CPL为将对应位置的数值相减得到[0.8 0.7 0.7],R·(CPU-CPL)为将R与CPU-CPL对应位置的数值相乘,得到[0.8 1.4 0.7],为[0.8+0.1 1.4+0.2 0.7+0.2]=[0.9 1.6 0.9]。
在保证种群多样性的前提下,为了提高算法的运行效率,本申请实施例不对下一轮迭代的待处理向量集中每个标识向量的控制参数进行调整,而是选取部分标识向量,具体可以选取适应度小于第二预设阈值的标识向量,或者将所有的标识向量按照适应度从小到大的顺序进行排序,选取后40%的标识向量进行控制参数的调整。
对于每一轮迭代,多样性概率阈值可以通过如下公式确定:
τ=fitness(bestX)-mean(fitness(X))
其中,τ为任意一轮迭代的多样性概率,fitness(bestX)为候选标识向量的适应度中,最大的适用度,mean(fitness(X))表示待处理向量集中标识向量的平均适应度。计算待处理向量集的多样性值为现有技术,此处不再赘述。
在本申请实施例中,为了减少不必要的流程,在候选标识向量的适应度中查询最大的适用度,也可以从所有标识向量的适用度中查询最大的适用度,此处不进行具体限定。
需要注意的是,每一轮迭代对应的多样性概率阈值不同,因此在每一轮迭代过程中,都需要计算多样性概率阈值。
S103:直至迭代次数达到预设次数为止,将当前的待处理向量集作为目标标识向量集;基于所述目标标识向量集内包含的标识向量对应的测试用例,生成目标测试用例集。
当迭代次数达到预设次数时,例如可以设置预设次数为100。当迭代100次后,输出目标标识向量集,由于目标标识向量集中的标识向量标识了测试用例,因此基于目标标标识向量集即可确定最优的测试用例集。
下面根据图3对本申请实施例提供的测试用例生成方法进行详细介绍。
S301:初始化种群:确定第一轮迭代的待处理向量集;
S302:计算每个标识向量的适应度,并选取至少一个候选标识向量;
S303:根据上述公式Vi,确定待处理向量集对应的变异向量集;
S304:根据变异向量集,通过交叉操作确定待处理向量集对应的交叉向量集;
S305:对比交叉向量集与待处理向量集,并根据对比结果对待处理向量中包含的标识向量进行调整,得到下一轮迭代的待处理向量;
S306:判断待处理向量的多样性值是否大于多样性概率阈值,若是,则执行S307,否则执行S308;
S307:根据至少一个候选标识向量的控制参数,调整下一轮迭代的待处理向量集中的部分标识向量的控制参数;
S308:根据预设的控制参数取值范围的上限和下限,调整下一轮迭代的待处理向量集中的部分标识向量的控制参数;
S309:根据调整后的参数,确定下一轮迭代的待处理向量集中每个标识向量的控制参数;
S310:根据调整后的参数,确定下一轮迭代的待处理向量集中每个标识向量的控制参数;
S311:判断迭代次数是否为预设次数,若是,则执行S312,否则执行S302;
S312:将当前的待处理向量集作为目标标识向量集,并将目标标识向量集对应的测试用例,作为目标测试用例集。
本申请提供的一种测试用例生成方法,使用参数自适应的择优变异差分进化算法生成测试用例集;使用这种生成方法,既可以提高测试用例生成效率,又可以有效减少组合测试用例的数量,提高软件测试效率;采用择优变异策略,相比随机变异和最优变异,能够避免过早收敛;对控制参数进行调整,一方面当前种群测试用例呈现良好的多样性时,保持当前控制参数向择优个体参数学习,这有利于更快收敛到全局最优值。另一方面,当种群测试用例多样性下降,应调整和重置一部分控制参数值,以便产生新的后代个体。这些新的后代个体将有利于提高当前种群的多样性,帮助个体摆脱局部最优,从而避免过早收敛。因此,控制参数值的调整规则既保持了测试用例种群多样性,又保证了收敛性能。
基于相同的发明构思,本申请实施例还提供了一种测试用例集生成装置,如图4所示,该装置包括:
获取模块401,用于获取与目标测试任务关联的多个测试用例的标识向量,并基于得到的多个标识向量生成待处理向量集;
迭代模块402,用于重复执行如下步骤:
从待处理向量集中,选择适用度小于第一预设阈值的至少一个候选标识向量;所述适用度用于表征所述候选标识向量对应的测试用例适用的测试任务的数量;
将所述交叉向量集与待处理向量集进行对比,并根据对比结果对待处理向量集中包含的标识向量进行调整,得到下一轮迭代的待处理向量集;
若下一轮迭代待处理向量集的多样性值大于下一轮迭代的多样性概率阈值,则根据当前一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数;
生成模块403,用于直至迭代次数达到预设次数为止;将当前的待处理向量集作为目标标识向量集;基于所述目标标识向量集内包含的标识向量对应的测试用例,生成目标测试用例集。
在一种可能的实施方式中,迭代模块402用于从所述至少一个候选标识向量中随机选取一个标识向量作为目标候选标识向量;
基于所述目标候选标识向量、所述待处理向量集中的每个标识向量、以及每个标识向量的权重和放缩率,确定所述待处理向量集对应的变异向量集;
基于所述变异向量集和所述待处理向量集中每个标识向量的交叉概率,通过交叉操作得到所述待处理向量集对应的交叉向量集。
在一种可能的实施方式中,迭代模块402用于利用公式Vi=ω·Xi+F·(eliteX-Xi)+F·(Xr1-Xr2),分别确定所述待处理向量集中每个标识向量对应的变异向量;其中,Vi表示第i个标识向量对应的第i个变异向量,ω表示第i个标识向量的权重,Xi表示所述待处理向量集中第i个标识向量,eliteX表示目标候选标识向量,F表示第i个标识向量的放缩率,Xr1表示所述待处理向量集中第r1个标识向量,Xr2表示所述待处理向量集中第r2个标识向量;
基于每个标识向量对应的变异向量,确定所述变异向量集。
在一种可能的实施方式中,迭代模块用于确定当前一轮迭代的多样性概率阈值:
从所述至少一个候选标识向量的适用度中,选择最大适用度;
根据所述最大适用度与所述待处理向量集中标识向量的平均适应度的差值,作为所述当前一轮迭代的多样性概率阈值。
在一种可能的实施方式中,迭代模块402用于利用公式 分别确定所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的每个标识向量的控制参数/>
其中,G+1表示下一轮迭代;i表示适用度大于第二预设阈值的第i个标识向量,G表示当前一轮迭代;为当前一轮迭代第i个标识向量的控制参数,eliteCPG为当前一轮迭代中所述至少一个候选标识向量的控制参数的加和,mean表示对所述加和取平均,r为第一预设系数。
在一种可能的实施方式中,迭代模块用于确定下一轮迭代待处理向量集的多样性值不大于下一轮迭代的多样性概率阈值,则根据预设的控制参数取值范围的上限和下限,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数。
在一种可能的实施方式中,迭代模块402用于利用公式 分别确定下一轮迭代的待处理向量集中适用度大于第二预设阈值的每个标识向量的控制参数/>
其中,G+1表示下一轮迭代;i表示适用度大于第二预设阈值的第i个标识向量;R为第二预设系数,CPU为控制参数取值范围的上限,CPL为控制参数取值范围的下限。
基于相同的发明构思,本申请实施例还包括一种测试用例集生成设备,所述设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述实施例中的一种测试用例集生成方法。
下面参照图5来描述根据本申请的这种实施方式的电子设备50。图5显示的电子设备50仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,电子设备50以通用电子设备的形式表现。电子设备50的组件可以包括但不限于:上述至少一个处理器51、上述至少一个存储器52、连接不同系统组件(包括存储器52和处理器51)的总线53。
所述处理器51用于读取所述存储器52中的指令并执行,以使所述至少一个处理器能够执行上述实施例提供的一种测试用例集生成方法。
总线53表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器52可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)521和/或高速缓存存储器522,还可以进一步包括只读存储器(ROM)523。
存储器52还可以包括具有一组(至少一个)程序模块524的程序/实用工具525,这样的程序模块524包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备50也可以与一个或多个外部设备54(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备50交互的设备通信,和/或与使得该电子设备50能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口55进行。并且,电子设备50还可以通过网络适配器56与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器56通过总线53与用于电子设备50的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种测试用例集生成方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种测试用例集生成方法的步骤。
另外,本申请还提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序所述计算机程序用于使计算机执行上述实施例中任何一项所述的方法。
这些计算机程序指令可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种测试用例集生成方法,其特征在于,所述方法包括:
获取与目标测试任务关联的多个测试用例的标识向量,并基于得到的多个标识向量生成待处理向量集;
重复执行如下步骤:
从待处理向量集中,选择适用度小于第一预设阈值的至少一个候选标识向量;所述适用度用于表征所述候选标识向量对应的测试用例适用的测试任务的数量;
根据所述至少一个候选标识向量,以及待处理向量集中的每个标识向量的控制参数,确定所述待处理向量集对应的交叉向量集;
将所述交叉向量集与待处理向量集进行对比,并根据对比结果对待处理向量集中包含的标识向量进行调整,得到下一轮迭代的待处理向量集;
若下一轮迭代待处理向量集的多样性值大于下一轮迭代的多样性概率阈值,则根据当前一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数;
直至迭代次数达到预设次数为止,将当前的待处理向量集作为目标标识向量集;
基于所述目标标识向量集内包含的标识向量对应的测试用例,生成目标测试用例集。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个候选标识向量,以及待处理向量集中的每个标识向量的控制参数,确定所述待处理向量集对应的交叉向量集,包括:
从所述至少一个候选标识向量中随机选取一个标识向量作为目标候选标识向量;
基于所述目标候选标识向量、所述待处理向量集中的每个标识向量、以及每个标识向量的权重和放缩率,确定所述待处理向量集对应的变异向量集;
基于所述变异向量集和所述待处理向量集中每个标识向量的交叉概率,通过交叉操作得到所述待处理向量集对应的交叉向量集。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标候选标识向量、所述待处理向量集中的每个标识向量、以及每个标识向量的权重和放缩率,确定所述待处理向量集对应的变异向量集,包括:
利用公式Vi=ω·Xi+F·(eliteX-Xi)+F·(Xr1-Xr2),分别确定所述待处理向量集中每个标识向量对应的变异向量;其中,Vi表示第i个标识向量对应的第i个变异向量,ω表示第i个标识向量的权重,Xi表示所述待处理向量集中第i个标识向量,eliteX表示目标候选标识向量,F表示第i个标识向量的放缩率,Xr1表示所述待处理向量集中第r1个标识向量,Xr2表示所述待处理向量集中第r2个标识向量;
基于每个标识向量对应的变异向量,确定所述变异向量集。
4.根据权利要求1所述的方法,其特征在于,所述当前一轮迭代的多样性概率阈值通过如下方式确定:
从所述至少一个候选标识向量的适用度中,选择最大适用度;
根据所述最大适用度与所述待处理向量集中标识向量的平均适应度的差值,作为所述当前一轮迭代的多样性概率阈值。
5.根据权利要求1所述的方法,其特征在于,所述根据当前一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,包括:
利用公式分别确定所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的每个标识向量的控制参数/>
其中,G+1表示下一轮迭代;i表示适用度大于第二预设阈值的第i个标识向量,G表示当前一轮迭代;为当前一轮迭代第i个标识向量的控制参数,eliteCPG为当前一轮迭代中所述至少一个候选标识向量的控制参数的加和,mean表示对所述加和取平均,r为第一预设系数。
6.所述根据权利要求1所述的方法,其特征在于,所述方法还包括:
若下一轮迭代待处理向量集的多样性值不大于下一轮迭代的多样性概率阈值,则根据预设的控制参数取值范围的上限和下限,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数。
7.根据权利要求6所述的方法,其特征在于,所述根据预设的控制参数取值范围的上限和下限,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,包括:
利用公式分别确定下一轮迭代的待处理向量集中适用度大于第二预设阈值的每个标识向量的控制参数/>
其中,G+1表示下一轮迭代;i表示适用度大于第二预设阈值的第i个标识向量;R为第二预设系数,CPU为控制参数取值范围的上限,CPL为控制参数取值范围的下限。
8.一种测试用例集生成装置,其特征在于,所述装置包括:
获取模块,用于获取与目标测试任务关联的多个测试用例的标识向量,并基于得到的多个标识向量生成待处理向量集;
迭代模块,用于重复执行如下步骤:
从待处理向量集中,选择适用度小于第一预设阈值的至少一个候选标识向量;所述适用度用于表征所述候选标识向量对应的测试用例适用的测试任务的数量;
将所述交叉向量集与待处理向量集进行对比,并根据对比结果对待处理向量集中包含的标识向量进行调整,得到下一轮迭代的待处理向量集;
若下一轮迭代待处理向量集的多样性值大于下一轮迭代的多样性概率阈值,则根据当前一轮迭代的至少一个候选标识向量的控制参数,对所述下一轮迭代的待处理向量集中适用度大于第二预设阈值的标识向量的控制参数进行调整,得到下一轮迭代的待处理向量集中每个标识向量的控制参数;
生成模块,用于直至迭代次数达到预设次数为止;将当前的待处理向量集作为目标标识向量集;基于所述目标标识向量集内包含的标识向量对应的测试用例,生成目标测试用例集。
9.一种测试用例集生成设备,其特征在于,所述设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任何一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行如权利要求1-7中任何一项所述的方法。
CN202310823006.8A 2023-07-05 2023-07-05 一种测试用例集生成方法、装置、设备及存储介质 Pending CN116909887A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310823006.8A CN116909887A (zh) 2023-07-05 2023-07-05 一种测试用例集生成方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310823006.8A CN116909887A (zh) 2023-07-05 2023-07-05 一种测试用例集生成方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116909887A true CN116909887A (zh) 2023-10-20

Family

ID=88367598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310823006.8A Pending CN116909887A (zh) 2023-07-05 2023-07-05 一种测试用例集生成方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116909887A (zh)

Similar Documents

Publication Publication Date Title
CN108133260B (zh) 基于实时状态监控的多目标粒子群优化的工作流调度方法
CN112734014A (zh) 基于置信上界思想的经验回放采样强化学习方法及系统
CN111784203B (zh) 适用于发电机组参与的电力现货市场风险模拟分析方法
CN114492279A (zh) 一种模拟集成电路的参数优化方法及系统
CN110991621A (zh) 一种基于通道数搜索卷积神经网络的方法
CN111476399A (zh) 一种现货交易机制下售电公司购电方法及系统
CN112307667A (zh) 一种蓄电池的荷电状态估算方法、装置、电子设备及存储介质
CN115617690A (zh) 基于改进自适应遗传算法的并行测试任务调度方法
CN113722980A (zh) 海洋浪高预测方法、系统、计算机设备、存储介质、终端
CN110222816B (zh) 深度学习模型的建立方法、图像处理方法及装置
EP3674959A1 (en) Optimization calculation method and information processing apparatus
CN110851247A (zh) 一种带约束云工作流的成本优化调度方法
CN112836885B (zh) 组合负荷预测方法、装置、电子设备和存储介质
CN111412795A (zh) 测试点设置方案生成方法及装置
CN116663638A (zh) 一种模型微调训练方法、装置、设备及介质
CN116909887A (zh) 一种测试用例集生成方法、装置、设备及存储介质
CN116304699A (zh) 基于新能源多场站短路比的临界样本集生成方法及系统
CN117153233A (zh) 一种基于遗传算法的存储芯片冗余修复方案生成方法、装置、设备及存储介质
CN110555742A (zh) 一种发电商代理报价的生成方法与系统
CN110782080B (zh) 一种基于种群性能排序选择的电力系统结构优化方法
CN114723217A (zh) 碳中和目标下的综合能源供给侧配置方法和系统
CN110942195A (zh) 一种用电负荷预测方法及装置
CN117492371B (zh) 有源电力滤波器模型预测控制的优化方法、系统和设备
KR100592086B1 (ko) 적응적인 가중치 보팅 알고리즘을 적용한 단백질 이차구조 예측 방법
CN114444808A (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