[发明专利]基于混沌遗传算法的测试用例集约简算法在审
申请号: | 201410490197.1 | 申请日: | 2014-09-23 |
公开(公告)号: | CN104268077A | 公开(公告)日: | 2015-01-07 |
发明(设计)人: | 蒋云良;楼俊钢 | 申请(专利权)人: | 湖州师范学院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/12 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤 |
地址: | 313000*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 混沌 遗传 算法 测试 集约 | ||
技术领域
本发明属于软件测试用例最小化生成技术领域,涉及基于混沌遗传算法的测试用例集约简算法。
背景技术
软件测试是软件质量保重中必不可少的一部分,为满足一定测试需求覆盖率,生成的测试用例数目往往异常庞大,软件系统开发过程的迭代需要频繁的进行回归测试,测试冗余严重。为提高测试效率、降低测试成本,减少测试用例的执行、管理与维护的开销,测试用例集的约简是极为必要的。现有的测试用例约简方法主要有贪心算法、启发式算法、整数规划算法、扩张集算法、遗传算法等。针对遗传算法用于软件测试用例集约简时,在适应度函数选择不当的情况下极有可能陷入局部最优的问题,本发明运用混沌遗传算法来进行测试用例集的约简,形成了基于遗传算法扩展算法测试用例约简模型(GEETR模型),在GEE算法的基础上继续将混沌理论引入其中,形成CGTR模型。把遍历范围“放大”,然后对所得混沌变量进行编码,对其进行选择、复制、交叉、变异操作,然后对各个混沌变量附加一混沌小扰动,通过不断进化收敛到一个最适合的个体上,混沌系统的遍历性能够在全局范围内进行无重复的搜索,减少了搜索的随机性,从而提高搜索的效率。
发明内容
本发明的目的在于提供基于混沌遗传算法的测试用例集约简算法,解决了现有的测试用例集的约简的方法复杂,效率低的问题。
本发明所采用的技术方案是按照以下步骤进行:
步骤1:编码、初始化种群;初始化父体编码时满足当父体Wi与子体g[i]下标相等时,g[i]=1,其余g[i]=0;
步骤2:当父体编码改变时需重新计算其适应度,适应度值主要用于轮盘赌选择算法和混沌遗传算法,使用传统适应度函数计算公式,将适应度计算的对象变为对父体Wi按公式F(Wi)=Cov(Wi)/Cost(Wi)进行适应度计算,其中,Cov(Wi)指父体的测试覆盖度,Cov(Wi)是父体的测试运行代价,覆盖程度Cov(Wi)为计算父体编码Wi中覆盖测试需求rk的的个数;
步骤3:定义遗传算子;遗传算子包括选择、交叉、变异三步,主要对父体进行遗传变异,对其进行优化最终得到新的父体的一个过程,新父体的生产可能会增加向最优解变异的机会,因此在遗传算子结束后需再对新的父体进行适应值评价,判断是否满足输出条件,满足则输出最优子代,否则,则进行步骤4;
步骤4:添加混沌扰动;对当前种群中适应度后90%的父体,利用混沌系统,对其进行一定程度的微小扰动,从而提高其适应度,将选中的父体Wi=[g[1],g[2],...,g[n]]所指代的二进制的每一位都加一混沌扰动,按式g′[k]=(1-ε)g*+ε·g[k],1≤k≤n进行添加,然后按式g″[k]=ci+di·g′[k]映射为优化变量,进行迭代计算;其中g′[k]为经过添加随机扰动后形成的一个混沌变量,g*为当前最优父体所指代的二进制编码,g[k]为迭代k次之后的编码,通过g′[k]=(1-ε)g*+ε·g[k],1≤k≤n可得到一组新父体G′[k]=(g′[1]g′[2],...,g′[n]),0<ε<1,对于ε的取值采用自适应进行选取,随着搜索逐渐接近最优点,需将ε逐渐缩小,以保证在小范围内搜索最优解:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖州师范学院,未经湖州师范学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410490197.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种医用新型消毒盒
- 下一篇:栽培食用菌用固体培养基微波杀菌装置