CN106919504B - 一种基于ga算法的测试数据进化生成方法 - Google Patents
一种基于ga算法的测试数据进化生成方法 Download PDFInfo
- Publication number
- CN106919504B CN106919504B CN201710077936.8A CN201710077936A CN106919504B CN 106919504 B CN106919504 B CN 106919504B CN 201710077936 A CN201710077936 A CN 201710077936A CN 106919504 B CN106919504 B CN 106919504B
- Authority
- CN
- China
- Prior art keywords
- population
- individual
- adaptive
- individuals
- formula
- 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
Images
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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Quality & Reliability (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供的是一种基于GA算法的测试数据进化生成方法。本发明包括:引入多种群的概念,进而考虑到这些种群的个体相似度以及种群多样性对测试数据生成的影响;考虑分支距离和节点覆盖率的影响,因此增加影响因子到改进的各种计算公式中,并加入一些权值因子,对这些影响因子进行权重分配,有利于测试用例的动态自适应调整。通过交叉率和变异率动态自适应调整策略,使得算法在运算能力方面得到加强。计算个体的贡献度,进而调整传统的适应值函数,有利于优异的个体在之后的进化中得以保存,以提高测试数据生成的效率。
Description
技术领域
本发明属于软件测试领域,且特别是涉及一种基于GA算法的测试数据进化生成方法。
背景技术
软件测试是软件***开发中保证软件质量的至关重要的环节,软件开发费用有很大的比重是用在测试上。若是测试过程能够实现自动化,则会很大程度地减少软件开发的费用,提高测试效率。测试用例的生成工作包含确定测试需求、确定输入数据、运行被测程序并分析对应的输出数据。测试用例自动生成技术的设计是软件自动化测试的一个重要难题,解决这个难题对保证软件质量至关重要,是提高软件质可靠性的保证。
遗传算法作为一种启发式搜索算法,具有简单易行、通用性强、鲁棒性高、全局搜索能力强等优点。遗传算法是求解测试数据自动生成问题的而有效方法,近年来国内外的相关研究成果较多。然而遗传算法固有的一些缺陷,如早熟停滞、易于陷入局部最优、后期搜索效率低等,影响了测试生成的效率。并且现有的适应值函数设计方法没有有效利用进化种群所反映的综合信息,从而没有很好地在进化过程中保护生成的测试数据。
因此,针对遗传算法的这些缺陷,对遗传算法进行一些改进,把测试节点的覆盖率、种群多样性和分支距离作为测试用例适应值函数的主要设计参数,力求极大的提高测试用例的优秀程度,对于测试数据的生成执行效率和覆盖率,力求使其得到的测试用例是最优的集合。提出了一种基于GA算法的测试数据进化生成方法,该方法在实际中的运行能力得到加强,在覆盖率、测试用例规模和搜索时间的方面,都具有很好地优势。
发明内容
本发明的目的是在经典遗传算法的基础上,针对遗传算法存在的缺陷和现有的方法设计适应值函数时存在的不足,引入个体贡献值以及交叉率和变异率动态自适应调整策略,使得优异的个体能够更好的得到保存,并且使算法的运算能力增强。
本发明解决其技术问题所采用的技术方案如下:引入多种群的概念,进而考虑到这些种群的个体相似度以及种群多样性对测试数据生成的影响;考虑分支距离和节点覆盖率的影响,因此增加影响因子到改进的各种计算公式中,并加入一些权值因子,对这些影响因子进行权重分配,有利于测试用例的动态自适应调整。通过交叉率和变异率动态自适应调整策略,使得算法在运算能力方面得到加强。计算个体的贡献度,进而调整传统的适应值函数,有利于优异的个体在之后的进化中得以保存,以提高测试数据生成的效率。
为实现上述目标,本发明提出了一种基于GA算法的测试数据生成方法。本方法具体步骤如下:
1)初始化子种群,采用位串形式编码,为种群个体染色体与二进制串之间建立一对一的映射关系;
2)计算种群的个体距离;计算节点覆盖率和分支距离;然后构造个体适应值函数;计算子种群中每个个体的适应值,并且按照降序排序;
引入节点贡献度,根据贡献度权重调整适应值函数,计算调整后的适应值函数值,并作为阈值;
3)选取各子种群中适应值大于阈值的个体构成主种群,再对主种群中的个体按适应值降序排序,选取排序前1/2的个体,替换掉各个子种群中适应值小于阈值的个体;
4)对步骤3)处理后的各子种群依次进行选择、交叉、变异操作,生成子代种群;
5)判断是否满足设定的终止条件,若满足,则算法停止,输出测试数据;反之,则跳转到步骤2)。
优选的,所述的步骤2)具体为:
步骤a:计算种群的个体距离公式为:
式中,d(x,y)表示两个个体之间的曼哈顿距离,xi和xj表示第k个种群中的任意两个不同个体;
步骤b:分支距离的计算公式为:
式中,Odistance表示分支距离,S是覆盖目标路径的路径数目,θ为大于零的常数;
步骤c:节点覆盖率的计算公式为:
式中,Ncr表示节点覆盖率,τ是覆盖目标路径节点的节点数目,ω为目标路径的节点数目;
步骤d:个体适应值函数为:
fit(xi,t)=αOdistance(xi,t)+βNcr(xi,t)+γd(xi,xj,t)
式中,fit(xi,t)表示个体适应值函数,Odistance(xi,t)、Ncr(xi,t)和d(xi,xj,t)分别是第t代第k个种群中个体xi的分支距离、节点覆盖率和个体距离,α+β+γ=1,α是覆盖率影响因子,β是分支谓词影响因子,γ是种群多样性影响因子;
步骤e:种群多样性的计算公式为:
Vk=ηDk+(1-η)fitk
步骤f:调整原来的适应值函数:
式中,Fit表示调整后的适应值函数,Q(xi,t)是个体xi的贡献度。
优选的,所述的步骤3)具体为:
步骤a:选择操作采用改进的截断选择法和精英个体保留策略相结合的方法进行选择母个体,选择概率为:
式中,Pk(xi)是第k个种群中个体xi被选为母个体的概率,SK是种群中大于阈值的个体数目;
步骤c:交叉操作通过引入种群个体相似度来达到交叉概率的动态自适应改变。
种群个体xi和xj之间的相似度为:
式中,xig表示第i个输入变量的二进制串中第g个符号,l是二进制串的长度;
步骤c:变异操作采用动态的自适应改变变异率Pm来增强种群多样性。变异率:
遗传操作有利于保留种群中较好的个体,保证种群多样性,增强搜索能力、防止个体的早熟停滞显现。
附图说明
图1是算法的流程图。
图2是种群择优模型。
图3是三角形分类程序片段的控制流图。
图4是适应值函数的构造流程图。
具体实施方式
以下结合附图和具体实施对本发明进行详细描述,但不作为对本发明的限定。
图1为本发明实施的一种GA算法的测试数据进化生成方法的流程图。本方法具体步骤如下:
1)将问题的可行解从其解空间转换到遗传算法所能处理的搜索空间,初始化子种群,对算法各参数赋值,采用位串形式编码,为种群个体染色体与二进制串之间建立一对一的映射关系;这个二进制串可以表示为:
2)插桩被测程序,将测试用例输入到程序中执行计算种群的个体距离;计算节点覆盖率和分支距离;然后构造个体适应值函数;计算子种群中每个个体的适应值,并且按照降序排序;引入节点贡献度,根据贡献度权重调整适应值函数,计算调整后的适应值函数值,并作为阈值;
3)选取各子种群中适应值大于阈值的个体构成主种群,再对主种群中的个体按适应值降序排序,选取排序前1/2的个体,替换掉各个子种群中适应值小于阈值的个体;
4)对步骤3)处理后的各子种群依次进行选择、交叉、变异操作,生成子代种群;
5)判断是否满足设定的终止条件,若满足,则算法停止,解码保存的个体,输出测试数据;反之,则跳转到步骤2)。此处的终止条件为迭代是否满足设定的次数N,在本实施例中N为100次。
图2是种群择优模型。图3是三角形分类程序片段的控制流图。在控制流图中,每个分支都可以用一个条件表达式来表示,该条件表达式称为分支谓词,其作用是描述了程序遍历该分支下语句的条件,如判断语句if(a>b)中分支谓词为a>b。当分支谓词为真时,则分支函数取零;当分支谓词取假时,计算结果的分支函数,这个时候分支函数的取值是为正的。在实际执行过程中用分支函数插桩法在程序单元的逻辑路径所经过的每一个分支语句之前***分支函数。测试用例执行被测程序单元时,就能得到分值函数值。
(1)计算适应值。
图4是适应值函数的构造流程图。首先,计算种群的个体距离;接着,计算节点覆盖率和分支距离;然后,构造个体适应值函数;最后,引入节点贡献度,结合种群多样性调整原来的适应值函数,并且以其作为阈值。具体步骤如下:
步骤a:计算种群的个体距离公式为:
式中,d(x,y)表示两个个体之间的曼哈顿距离,xi和xj表示第k个群中的任意两个不同个体。
步骤b:分支距离(offtake)的计算公式为:
式中,Odistance表示分支距离,S是覆盖目标路径的路径数目,θ为大于零的常数。
步骤c:节点覆盖率(node coverage rate)的计算公式为:
式中,Ncr表示节点覆盖率,τ是覆盖目标路径节点的节点数目,ω为目标路径的节点数目。
步骤d:个体适应值函数为:
fit(xi,t)=αOdistance(xi,t)+βNcr(xi,t)+γd(xi,xj,t)
式中,fit(xi,t)表示个体适应值函数,Odistance(xi,t)、Ncr(xi,t)和d(xi,xj,t)分别是第t代第k个种群中个体xi的分支距离、节点覆盖率和个体距离,α+β+γ=1。
步骤e:种群多样性的计算公式为:
Vk=ηDk+(1-η)fitk
步骤f:调整原来的适应值函数:
式中,Fit表示调整后的适应值函数(作为阈值),Q(xi,t)是个体xi的贡献度。
(2)种群个体择优替换。
选取各子种群中适应值大于阈值的个体构成主种群,再对主种群中的个体按适应值降序排序,选取前1/2个体,替换掉各个子种群中适应值小于阈值的个体。
(3)进行遗传操作。
采用截断法和精英个体保留策略相结合的方法选择母个体,把两个母个体的部分结构加以替换重组生成新个体,使用变异算子使得分体中的基因,以一定的概率发生改变。遗传操作的具体步骤如下:
步骤a:选择操作采用改进的截断选择法和精英个体保留策略相结合的方法进行选择母个体。选择概率为:
式中,Pk(xi)是第k个种群中个体xi被选为母个体的概率,SK是种群中大于阈值的个体数目。
步骤c:交叉操作通过引入种群个体相似度来达到交叉概率的动态自适应改变。
种群个体xi和xj之间的相似度为:
式中,xig表示第i个输入变量的二进制串中第g个符号,l是二进制串的长度。
步骤c:变异操作采用动态的自适应改变变异率Pm来增强种群多样性。变异率:
综上所述,本发明提出的改进算法相较于基本遗传算法,克服了遗传算法固有的一些如早熟停滞、易于陷入局部最优、后期搜索效率低等缺陷,极大地提高了在实际中的运行能力,而且在覆盖率、测试用例规模和搜索时间的方面以及对生成测试数据的效率和保护方面,都具有很好地优势。
Claims (3)
1.一种基于GA算法的测试数据进化生成方法,其特征在于包括如下步骤:
1)初始化子种群,赋值算法参数,采用位串形式编码,为种群个体染色体与二进制串之间建立一对一的映射关系;
2)插桩被测程序,将测试用例输入到程序中执行计算种群的个体距离;计算节点覆盖率和分支距离;然后构造个体适应值函数;计算子种群中每个个体的适应值,并且按照降序排序;引入节点贡献度,根据贡献度权重调整适应值函数,计算调整后的适应值函数值,并作为阈值;
3)选取各子种群中适应值大于阈值的个体构成主种群,再对主种群中的个体按适应值降序排序,选取排序前1/2的个体,替换掉各个子种群中适应值小于阈值的个体;
4)对步骤3)处理后的各子种群依次进行选择、交叉、变异操作,生成子代种群;
5)判断是否满足设定的终止条件,若满足,则迭代停止,输出测试数据;反之,则跳转到步骤2)。
2.根据权利要求1所述的基于GA算法的测试数据进化生成方法,其特征在于所述的步骤2)具体为:
步骤a:计算种群的个体距离公式为:
式中,d(x,y)表示两个个体之间的曼哈顿距离,xi和xj表示第k个种群中的任意两个不同个体;
步骤b:分支距离的计算公式为:
式中,Odistance表示分支距离,S是覆盖目标路径的路径数目,θ为大于零的常数;
步骤c:节点覆盖率的计算公式为:
式中,Ncr表示节点覆盖率,τ是覆盖目标路径节点的节点数目,ω为目标路径的节点数目;
步骤d:个体适应值函数为:
fit(xi,t)=αOdistance(xi,t)+βNcr(xi,t)+γd(xi,xj,t)
式中,fit(xi,t)表示个体适应值函数,Odistance(xi,t)、Ncr(xi,t)和d(xi,xj,t)分别是第t代第k个种群中个体xi的分支距离、节点覆盖率和个体距离,α+β+γ=1,α是覆盖率影响因子,β是分支谓词影响因子,γ是种群多样性影响因子;
步骤e:种群多样性的计算公式为:
Vk=ηDk+(1-η)fitk
步骤f:调整原来的适应值函数:
式中,Fit表示调整后的适应值函数,Q(xi,t)是个体xi的贡献度。
3.根据权利要求1所述的基于GA算法的测试数据进化生成方法,其特征在于所述的步骤3)具体为:
步骤a:选择操作采用改进的截断选择法和精英个体保留策略相结合的方法进行选择母个体,选择概率为:
式中,Pk(xi)是第k个种群中个体xi被选为母个体的概率,SK是种群中大于阈值的个体数目;
步骤c:交叉操作通过引入种群个体相似度来达到交叉概率的动态自适应改变;
种群个体xi和xj之间的相似度为:
式中,xig表示第i个输入变量的二进制串中第g个符号,l是二进制串的长度;
步骤c:变异操作采用动态的自适应改变变异率Pm来增强种群多样性;变异率:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710077936.8A CN106919504B (zh) | 2017-02-14 | 2017-02-14 | 一种基于ga算法的测试数据进化生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710077936.8A CN106919504B (zh) | 2017-02-14 | 2017-02-14 | 一种基于ga算法的测试数据进化生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106919504A CN106919504A (zh) | 2017-07-04 |
CN106919504B true CN106919504B (zh) | 2020-09-22 |
Family
ID=59454610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710077936.8A Active CN106919504B (zh) | 2017-02-14 | 2017-02-14 | 一种基于ga算法的测试数据进化生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919504B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446214B (zh) * | 2018-01-31 | 2021-02-05 | 浙江理工大学 | 基于dbn的测试用例进化生成方法 |
CN111666209B (zh) * | 2020-05-20 | 2023-03-31 | 牡丹江师范学院 | 一种基于多目标优化的测试用例优先级排序方法 |
CN112463629B (zh) * | 2020-12-11 | 2022-03-29 | 北京航空航天大学 | 一种基于遗传进化的自主无人***软件配置项调整方法 |
CN113342661A (zh) * | 2021-06-11 | 2021-09-03 | 南京工业大学 | 一种面向模型质量优化的ai***测试数据生成方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810104A (zh) * | 2014-03-04 | 2014-05-21 | 中国人民解放军63863部队 | 一种软件测试用例优化方法及*** |
CN105718368A (zh) * | 2016-01-15 | 2016-06-29 | 西安邮电大学 | 一种软件测试数据扩增方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011135410A1 (en) * | 2010-04-28 | 2011-11-03 | Indian Statistical Institute | Optimization technique using evolutionary algorithms |
-
2017
- 2017-02-14 CN CN201710077936.8A patent/CN106919504B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810104A (zh) * | 2014-03-04 | 2014-05-21 | 中国人民解放军63863部队 | 一种软件测试用例优化方法及*** |
CN105718368A (zh) * | 2016-01-15 | 2016-06-29 | 西安邮电大学 | 一种软件测试数据扩增方法 |
Non-Patent Citations (1)
Title |
---|
基于变异粒子群算法的字符串型测试数据生成;李刚 等;《计算机科学》;20161130;第252-256,279页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106919504A (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509335B (zh) | 基于遗传算法优化的软件测试数据生成方法 | |
CN106919504B (zh) | 一种基于ga算法的测试数据进化生成方法 | |
US9058564B2 (en) | Controlling quarantining and biasing in cataclysms for optimization simulations | |
CN107506865B (zh) | 一种基于lssvm优化的负荷预测方法及*** | |
WO2022121518A1 (zh) | 一种分布式计算作业的参数配置优化方法及*** | |
CN110502277B (zh) | 一种基于bp神经网络的代码坏味检测方法 | |
US11037061B2 (en) | Adaptive cataclysms in genetic algorithms | |
CN102708047B (zh) | 数据流测试用例生成方法 | |
CN111209192A (zh) | 一种基于双混沌鲸鱼优化算法的测试用例自动生成方法 | |
Hu et al. | A niching backtracking search algorithm with adaptive local search for multimodal multiobjective optimization | |
WO2005048184A1 (ja) | 能動学習方法およびシステム | |
CN113407185A (zh) | 基于贝叶斯优化的编译器优化选项推荐方法 | |
CN104732067A (zh) | 一种面向流程对象的工业过程建模预测方法 | |
Chen et al. | Application of novel clonal algorithm in multiobjective optimization | |
CN109034479B (zh) | 一种基于差分进化算法的多目标调度方法及装置 | |
Li et al. | Breeding software test data with genetic-particle swarm mixed algorithm. | |
CN111126560A (zh) | 一种基于云遗传算法优化bp神经网络的方法 | |
Neumann et al. | A didactic review on genetic algorithms for industrial planning and scheduling problems | |
Rifai et al. | Multi-operator hybrid genetic algorithm-simulated annealing for reentrant permutation flow-shop scheduling | |
Shen et al. | Automatic generation of test case based on GATS algorithm | |
Sun et al. | A novel neighborhood-dependent mutation operator for differential evolution | |
Li et al. | Author's Accepted Manuscript | |
Liu et al. | A improved NSGA-II algorithm based on sub-regional search | |
Yan et al. | A fast evolutionary algorithm for combinatorial optimization problems | |
Chen et al. | Research on adaptive genetic algorithm based on multi-population elite selection strategy |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221011 Address after: Room 406, building 19, haichuangyuan, No. 998, Wenyi West Road, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: HANGZHOU HUICUI INTELLIGENT TECHNOLOGY CO.,LTD. Address before: No.928, No.2 street, Jianggan Economic Development Zone, Hangzhou City, Zhejiang Province, 310018 Patentee before: ZHEJIANG SCI-TECH University |
|
TR01 | Transfer of patent right |