CN108763069A - 一种基于信息熵粒子群算法的测试用例生成方法 - Google Patents
一种基于信息熵粒子群算法的测试用例生成方法 Download PDFInfo
- Publication number
- CN108763069A CN108763069A CN201810465966.0A CN201810465966A CN108763069A CN 108763069 A CN108763069 A CN 108763069A CN 201810465966 A CN201810465966 A CN 201810465966A CN 108763069 A CN108763069 A CN 108763069A
- Authority
- CN
- China
- Prior art keywords
- combination
- factor
- sets
- value
- particle
- 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
Links
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
- 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/3676—Test management for coverage analysis
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于信息熵粒子群算法的测试用例生成方法,包括以下步骤:步骤一:确定需要覆盖的组合集;步骤二:为需覆盖组合集中的每个组合分别生成含有部分值缺省的初始测试用例;步骤三:对需覆盖组合集中的组合进行优先级排序;步骤四:选择优先级最高的组合,并采用信息熵粒子群算法为该组合对应的初始测试用例中待确定的值选择最佳取值,生成所有值都确定的完整测试用例;步骤五:将步骤四生成的完整测试用例添加到需覆盖组合集中并删除被覆盖组合;步骤六:重复步骤四与步骤五,直至需覆盖组合集中的所有组合都被完整测试用例覆盖,生成覆盖范围广且数量少完整测试用例集。本发明具有能有效生成覆盖范围广且数量少的测试用例集的优点。
Description
技术领域
本发明涉及测试用例生成技术领域,具体涉及一种基于信息熵粒子群算法的测试用例生成方法。
背景技术
组合测试是一种基于规约的测试方法,主要考虑到待测系统的因素之间的关系,进行组合测试,从更深的角度去测试系统。传统的基于粒子群算法的测试用例生成方法存在以下缺点:由于粒子的多样性少及粒子收敛速度快,极易出现早熟及陷入局部最优等问题,导致无法有效生成覆盖范围广且数量少的测试用例集。
发明内容
本发明的目的是提供一种能有效地生成覆盖范围广且数量少的测试用例集的基于信息熵粒子群算法的测试用例生成方法。
为实现上述目的,本发明采用了如下技术方案:所述的一种基于信息熵粒子群算法的测试用例生成方法,包括以下步骤:
步骤一:根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定需要覆盖的组合集;
步骤二:在符合组合覆盖的前提下,对需覆盖组合集中的组合代入具体取值并进行部分数据的缺省,为需覆盖组合集中的每个组合分别生成含有部分值缺省的初始测试用例;
步骤三:根据需覆盖组合集中的每个组合对应的初始试测用例包含其他组合的个数,对需覆盖组合集中的组合进行优先级排序,其中,组合对应的初始试测用例包含其他组合的个数越多则该组合的优先级越高;
步骤四:从需覆盖组合集中选择优先级最高的组合,并采用信息熵粒子群算法为该组合对应的初始测试用例中待确定的值选择最佳取值,生成所有值都确定的一条完整测试用例;
步骤五:将步骤四生成的完整测试用例添加到需覆盖组合集中,并将需覆盖组合集中被该条完整测试用例覆盖的对应组合删除;
步骤六:重复步骤四与步骤五,直至需覆盖组合集中的所有组合都被相应的完整测试用例覆盖替换,从而生成覆盖范围广且数量少完整测试用例集。
进一步地,前述的一种基于信息熵粒子群算法的测试用例生成方法,其中:在步骤一中,需要覆盖的组合集的确定包括以下步骤:
步骤(1):根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定因素的组合力度;
步骤(2):根据因素的取值、因素间的约束关系、以及步骤(1)中确定的因素的组合力度生成需要覆盖的组合集。
进一步地,前述的一种基于信息熵粒子群算法的测试用例生成方法,其中:在步骤二中,需覆盖组合集的初始测试用例的生成包括以下步骤:
步骤(1):根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定因素的组合力度;
步骤(2):按照pict工具使用的要求,将需要组合的因素和取值保存在.txt文件中,并根据步骤(1)确定的因素组合力度,生成相应的组合数据;
步骤(3):根据因素间的取值约束关系,将步骤(2)生成的组合数据中的无效组合数据进行剔除,保留有效组合数据;
步骤(4):将需覆盖的组合集与步骤(3)生成的有效组合数据进行比对,从而为需覆盖组合集中的每个组合分别生成含有部分值缺省的初始测试用例。
进一步地,前述的一种基于信息熵粒子群算法的测试用例生成方法,其中:在步骤四中,采用信息熵粒子群算法生成完整测试用例包括以下步骤:
步骤(1):从已经标注好优先级的需覆盖组合集中优先选择优先级最高的组合,并随机初始化粒子的位置和速度;
步骤(2):计算选定全局最优粒子和局部最优粒子;
步骤(3):根据人工免疫算法亲和度的思想,选择以信息熵的计算公式计算粒子间的亲和度,当亲和度的值超过时限给定的阈值时,则判断粒子间过于聚集,此时按照预设概率添加变异因子,将聚集的粒子打散而生成新粒子,并重新计算粒子的适应度值,再跳转执行步骤(2);当亲和度的值没有超过时限给定的阈值时,则判断粒子间不会过于聚集,此时跳转执行步骤(4);
步骤(4):判断粒子是否满足迭代结束条件,当粒子不满足迭代结束条件时,按照自适应调整策略进行粒子自适应调整,并重新计算粒子的适应度值,再跳转执行步骤(2);当粒子满足迭代结束条件时,输出初始测试用例中待确定值的最佳取值,生成所有值都确定的一条完整测试用例。
通过上述技术方案的实施,本发明的有益效果是:采用了人工免疫算法中亲和度的思想,通过信息熵的方法计算粒子间的亲和度,当粒子过于聚集时,按照事先给定的概率公式添加变异因子,将聚集的粒子打散,形成新粒子,这样就可以增加粒子的多样性,向更广的方向搜索最佳值,从而避免陷入局部最优,能有效生成覆盖范围广且数量少的测试用例集。
附图说明
图1为本发明所述的一种基于信息熵粒子群算法的测试用例生成方法的流程框图。
图2为本发明所述的信息熵粒子群算法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
如图1、图2所示,所述的一种基于信息熵粒子群算法的测试用例生成方法,包括以下步骤:
步骤一:根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定需要覆盖的组合集;
其中,需要覆盖的组合集的确定包括以下步骤:
步骤(1):根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定因素的组合力度;
步骤(2):根据因素的取值、因素间的约束关系、以及步骤(1)中确定的因素的组合力度生成需要覆盖的组合集;
步骤二:在符合组合覆盖的前提下,对需覆盖组合集中的组合代入具体取值并进行部分数据的缺省,为需覆盖组合集中的每个组合分别生成含有部分值缺省的初始测试用例;
其中,需覆盖组合集的初始测试用例的生成包括以下步骤:
步骤(1):根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定因素的组合力度;
步骤(2):按照pict工具使用的要求,将需要组合的因素和取值保存在.txt文件中,并根据步骤(1)确定的因素组合力度,生成相应的组合数据;
步骤(3):根据因素间的取值约束关系,将步骤(2)生成的组合数据中的无效组合数据进行剔除,保留有效组合数据;
步骤(4):将需覆盖的组合集与步骤(3)生成的有效组合数据进行比对,从而为需覆盖组合集中的每个组合分别生成含有部分值缺省的初始测试用例;
步骤三:根据需覆盖组合集中的每个组合对应的初始试测用例包含其他组合的个数,对需覆盖组合集中的组合进行优先级排序,其中,组合对应的初始试测用例包含其他组合的个数越多则该组合的优先级越高;
步骤四:从需覆盖组合集中选择优先级最高的组合,并采用信息熵粒子群算法为该组合对应的初始测试用例中待确定的值选择最佳取值,生成所有值都确定的一条完整测试用例;
其中,采用信息熵粒子群算法生成完整测试用例包括以下步骤:
步骤(1):从已经标注好优先级的需覆盖组合集中优先选择优先级最高的组合,并随机初始化粒子的位置和速度;
步骤(2):计算选定全局最优粒子和局部最优粒子;
步骤(3):根据人工免疫算法亲和度的思想,选择以信息熵的计算公式计算粒子间的亲和度,当亲和度的值超过时限给定的阈值时,则判断粒子间过于聚集,此时按照预设概率添加变异因子,将聚集的粒子打散而生成新粒子,并重新计算粒子的适应度值,再跳转执行步骤(2);当亲和度的值没有超过时限给定的阈值时,则判断粒子间不会过于聚集,此时跳转执行步骤(4);
步骤(4):判断粒子是否满足迭代结束条件,当粒子不满足迭代结束条件时,按照自适应调整策略进行粒子自适应调整,并重新计算粒子的适应度值,再跳转执行步骤(2);当粒子满足迭代结束条件时,输出初始测试用例中待确定值的最佳取值,生成所有值都确定的一条完整测试用例;
步骤五:将步骤四生成的完整测试用例添加到需覆盖组合集中,并将需覆盖组合集中被该条完整测试用例覆盖的对应组合删除;
步骤六:重复步骤四与步骤五,直至需覆盖组合集中的所有组合都被相应的完整测试用例覆盖替换,从而生成覆盖范围广且数量少完整测试用例集。
本发明的优点是:采用了人工免疫算法中亲和度的思想,通过信息熵的方法计算粒子间的亲和度,当粒子过于聚集时,按照事先给定的概率公式添加变异因子,将聚集的粒子打散,形成新粒子,这样就可以增加粒子的多样性,向更广的方向搜索最佳值,从而避免陷入局部最优,能有效生成覆盖范围广且数量少的测试用例集。
Claims (4)
1.一种基于信息熵粒子群算法的测试用例生成方法,其特征在于:包括以下步骤:
步骤一:根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定需要覆盖的组合集;
步骤二:在符合组合覆盖的前提下,对需覆盖组合集中的组合代入具体取值并进行部分数据的缺省,为需覆盖组合集中的每个组合分别生成含有部分值缺省的初始测试用例;
步骤三:根据需覆盖组合集中的每个组合对应的初始试测用例包含其他组合的个数,对需覆盖组合集中的组合进行优先级排序,其中,组合对应的初始试测用例包含其他组合的个数越多则该组合的优先级越高;
步骤四:从需覆盖组合集中选择优先级最高的组合,并采用信息熵粒子群算法为该组合对应的初始测试用例中待确定的值选择最佳取值,生成所有值都确定的一条完整测试用例;
步骤五:将步骤四生成的完整测试用例添加到需覆盖组合集中,并将需覆盖组合集中被该条完整测试用例覆盖的对应组合删除;
步骤六:重复步骤四与步骤五,直至需覆盖组合集中的所有组合都被相应的完整测试用例覆盖替换,从而生成覆盖范围广且数量少完整测试用例集。
2.根据权利要求1所述的一种基于信息熵粒子群算法的测试用例生成方法,其特征在于:在步骤一中,需要覆盖的组合集的确定包括以下步骤:
步骤(1):根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定因素的组合力度;
步骤(2):根据因素的取值、因素间的约束关系、以及步骤(1)中确定的因素的组合力度生成需要覆盖的组合集。
3.根据权利要求1所述的一种基于信息熵粒子群算法的测试用例生成方法,其特征在于:在步骤二中,需覆盖组合集的初始测试用例的生成包括以下步骤:
步骤(1):根据待测系统包含的因素的个数、因素的取值、以及因素间的约束关系,确定因素的组合力度;
步骤(2):按照pict工具使用的要求,将需要组合的因素和取值保存在.txt文件中,并根据步骤(1)确定的因素组合力度,生成相应的组合数据;
步骤(3):根据因素间的取值约束关系,将步骤(2)生成的组合数据中的无效组合数据进行剔除,保留有效组合数据;
步骤(4):将需覆盖的组合集与步骤(3)生成的有效组合数据进行比对,从而为需覆盖组合集中的每个组合分别生成含有部分值缺省的初始测试用例。
4.根据权利要求1所述的一种基于信息熵粒子群算法的测试用例生成方法,其特征在于:在步骤四中,采用信息熵粒子群算法生成完整测试用例包括以下步骤:
步骤(1):从已经标注好优先级的需覆盖组合集中优先选择优先级最高的组合,并随机初始化粒子的位置和速度;
步骤(2):计算选定全局最优粒子和局部最优粒子;
步骤(3):根据人工免疫算法亲和度的思想,选择以信息熵的计算公式计算粒子间的亲和度,当亲和度的值超过时限给定的阈值时,则判断粒子间过于聚集,此时按照预设概率添加变异因子,将聚集的粒子打散而生成新粒子,并重新计算粒子的适应度值,再跳转执行步骤(2);当亲和度的值没有超过时限给定的阈值时,则判断粒子间不会过于聚集,此时跳转执行步骤(4);
步骤(4):判断粒子是否满足迭代结束条件,当粒子不满足迭代结束条件时,按照自适应调整策略进行粒子自适应调整,并重新计算粒子的适应度值,再跳转执行步骤(2);当粒子满足迭代结束条件时,输出初始测试用例中待确定值的最佳取值,生成所有值都确定的一条完整测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810465966.0A CN108763069A (zh) | 2018-05-15 | 2018-05-15 | 一种基于信息熵粒子群算法的测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810465966.0A CN108763069A (zh) | 2018-05-15 | 2018-05-15 | 一种基于信息熵粒子群算法的测试用例生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763069A true CN108763069A (zh) | 2018-11-06 |
Family
ID=64008030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810465966.0A Pending CN108763069A (zh) | 2018-05-15 | 2018-05-15 | 一种基于信息熵粒子群算法的测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763069A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515845A (zh) * | 2019-08-20 | 2019-11-29 | 义乌工商职业技术学院 | 基于改进ipo策略的组合测试用例优化生成方法 |
CN115809204A (zh) * | 2023-02-09 | 2023-03-17 | 天翼云科技有限公司 | 面向云平台waf的sql注入检测测试方法、装置及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968853A (zh) * | 2010-10-15 | 2011-02-09 | 吉林大学 | 基于改进的免疫算法优化支持向量机参数的表情识别方法 |
CN106598849A (zh) * | 2016-12-03 | 2017-04-26 | 浙江理工大学 | 一种基于ap‑pso算法的组合测试用例生成方法 |
CN106952275A (zh) * | 2017-03-16 | 2017-07-14 | 南京师范大学 | 一种基于粒子群神经网络的细胞图像分割方法 |
-
2018
- 2018-05-15 CN CN201810465966.0A patent/CN108763069A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968853A (zh) * | 2010-10-15 | 2011-02-09 | 吉林大学 | 基于改进的免疫算法优化支持向量机参数的表情识别方法 |
CN106598849A (zh) * | 2016-12-03 | 2017-04-26 | 浙江理工大学 | 一种基于ap‑pso算法的组合测试用例生成方法 |
CN106952275A (zh) * | 2017-03-16 | 2017-07-14 | 南京师范大学 | 一种基于粒子群神经网络的细胞图像分割方法 |
Non-Patent Citations (2)
Title |
---|
孙晓雅等: "基于信息熵的免疫粒子群算法求解指派问题", 《微电子学与计算机》 * |
杨亚娟: "基于改进粒子群的组合测试用例生成技术研究", 《万方学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515845A (zh) * | 2019-08-20 | 2019-11-29 | 义乌工商职业技术学院 | 基于改进ipo策略的组合测试用例优化生成方法 |
CN110515845B (zh) * | 2019-08-20 | 2022-12-30 | 义乌工商职业技术学院 | 基于改进ipo策略的组合测试用例优化生成方法 |
CN115809204A (zh) * | 2023-02-09 | 2023-03-17 | 天翼云科技有限公司 | 面向云平台waf的sql注入检测测试方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866904B (zh) | 一种基于spark的遗传算法优化的BP神经网络并行化方法 | |
US7962102B2 (en) | Method and system for adaptive ray launching | |
CN111079899A (zh) | 神经网络模型压缩方法、系统、设备及介质 | |
CN108763069A (zh) | 一种基于信息熵粒子群算法的测试用例生成方法 | |
CN107798379A (zh) | 改进量子粒子群优化算法的方法及基于改进算法的应用 | |
CN111294959B (zh) | 一种联合用户分组和功率分配的优化方法及其优化装置 | |
CN114885420A (zh) | 一种noma-mec系统中的用户分组和资源分配方法及装置 | |
Singh et al. | Performance of a hybrid EA-DE-memetic algorithm on CEC 2011 real world optimization problems | |
CN109858611A (zh) | 基于通道注意力机制的神经网络压缩方法及相关设备 | |
CN110689113A (zh) | 一种基于大脑共识主动性的深度神经网络压缩方法 | |
CN108848541B (zh) | 节点间数据关联机会路由转发协调方法及系统 | |
CN108573274A (zh) | 一种基于数据稳定性的选择性聚类集成方法 | |
CN108681771A (zh) | 一种混合布谷鸟搜索算法 | |
CN108768482A (zh) | 基于遗传算法的scma码本生成方法 | |
Sun et al. | Application research based on improved genetic algorithm in cloud task scheduling | |
CN114330715A (zh) | 一种智能弹药协同进化任务分配方法 | |
Mallipeddi et al. | A twin-archive guided decomposition based multi/many-objective evolutionary algorithm | |
CN108652642A (zh) | 一种血氧饱和度测量方法、设备及存储介质 | |
CN111654455A (zh) | 一种基于广度增强型烟花算法的水声信道均衡方法 | |
KR102643431B1 (ko) | 심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법 | |
CN108694438A (zh) | 一种结合爆炸策略、反向学习与蝙蝠算法的单目标优化问题方法及系统 | |
WO2015131840A1 (zh) | 一种mimo系统的检测方法及装置 | |
CN102487309A (zh) | 一种mimo系统下的信号检测方法和装置 | |
CN109150237A (zh) | 一种鲁棒多用户检测器设计方法 | |
CN108989064A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |
|
RJ01 | Rejection of invention patent application after publication |