[发明专利]一种基于遗传算法的数据流测试用例自动生成方法有效
申请号: | 201310524293.9 | 申请日: | 2013-10-30 |
公开(公告)号: | CN103593287A | 公开(公告)日: | 2014-02-19 |
发明(设计)人: | 杨桂枝;郑平;张辉;张伟;詹海潭;高金梁 | 申请(专利权)人: | 北京信息控制研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/12 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 臧春喜 |
地址: | 100048*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于遗传算法的数据流测试用例自动生成方法。目前基于遗传算法的数据流测试用例自动生成技术中,遗传算法的交叉、变异点随机选取在个体基因中的任意位置,产生优良基因的同时也存在破坏已有优良基因的可能;子代种群的个体最大适应度值无论是否大于父代的个体最大适应度值,都向下继续遗传,延长了迭代过程。本发明在计算适应度函数时找到不满足目标路径的具体分支,利用该分支的结构信息约束遗传算法交叉、变异操作的范围,同时通过比较子代与父代种群中个体的最大适应度值,抛弃那些低于父代适应度值的子代,从而确保了优良基因的传递,降低了迭代次数,提高了计算效率。 | ||
搜索关键词: | 一种 基于 遗传 算法 数据流 测试 自动 生成 方法 | ||
【主权项】:
一种基于遗传算法的数据流测试用例自动生成方法,其特征在于步骤如下:(1)针对被测程序P中的一个定义使用对(def,use),找出由入口节点n1开始并且经过定义节点def的使用节点use的支配路径domdef(n1,use);(2)根据设定的遗传算法参数和输入变量的取值范围、精度,随机生成初始种群InitPop,并赋值给当前种群CurrentPop,即CurrentPop=InitPop,同时将CurrentPop赋值给父代种群ParentPop,即ParentPop=CurrentPop;(3)将当前种群CurrentPop中的每个个体输入被测程序P,检查实际路径pa对支配路径domdef(n1,use)的覆盖程度;(4)若当前种群CurrentPop中的所有个体执行完后,domdef(n1,use)中仍有节点没有被覆盖,且当前遗传代数没有达到设定的最大遗传代数,则执行(5)‑(7),否则执行(8);(5)计算当前种群CurrentPop中每个个体的适应度函数值,将其中最大值赋值给当前种群CurrentPop中个体的最大适应度值fmax_cur,当CurrentPop种群中个体的最大适应度值fmax_cur不大于父代种群中个体的最大适应度值fmax_old时,抛弃当前种群,将父代种群再赋值给CurrentPop,即CurrentPop=ParentPop,其中fmax_old初始值为0,然后执行(6);当CurrentPop种群中个体的最大适应度值fmax_cur大于父代种群中个体的最大适应度值fmax_old时,更新父代种群中个体的最大适应度值,即fmax_old=fmax_cur,然后执行(6);(6)依据适应度函数值,根据程序结构信息对当前种群CurrentPop利用遗传算法进行选择、交叉和变异操作得到新的种群NewPop;(7)将当前种群CurrentPop赋值给父代种群ParentPop,即ParentPop=CurrentPop,将新种群NewPop赋值给当前种群CurrentPop,即CurrentPop=NewPop,重复步骤(3)‑(4);(8)若在最大遗传代数之内找到了覆盖domdef(n1,use)中所有节点的测试用例,则输出该符合要求的测试用例;否则返回步骤(2)重新设定遗传算法参数,直到生成符合要求的测试用例。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息控制研究所,未经北京信息控制研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310524293.9/,转载请声明来源钻瓜专利网。