[发明专利]一种基于遗传算法的数据流测试用例自动生成方法有效
| 申请号: | 201310524293.9 | 申请日: | 2013-10-30 |
| 公开(公告)号: | CN103593287A | 公开(公告)日: | 2014-02-19 |
| 发明(设计)人: | 杨桂枝;郑平;张辉;张伟;詹海潭;高金梁 | 申请(专利权)人: | 北京信息控制研究所 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/12 |
| 代理公司: | 中国航天科技专利中心 11009 | 代理人: | 臧春喜 |
| 地址: | 100048*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 遗传 算法 数据流 测试 自动 生成 方法 | ||
1.一种基于遗传算法的数据流测试用例自动生成方法,其特征在于步骤如下:
(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)重新设定遗传算法参数,直到生成符合要求的测试用例。
2.根据权利要求1所述的一种基于遗传算法的数据流测试用例自动生成方法,其特征在于:所述步骤(1)中找出支配路径domdef(n1,use)的方法为:
domdef(n1,use)=dom(n1,def)∪ dom(def,use)
其中,dom(n1,def)表示由入口节点n1到定义节点def所必须经过的节点组成的路径,dom(def,use)表示由定义节点def到使用节点use所必须经过的节点组成的路径。
3.根据权利要求1所述的一种基于遗传算法的数据流测试用例自动生成方法,其特征在于:所述步骤(5)中计算个体适应度函数值的公式为:
其中,m表示支配路径domdef(n1,use)的长度,Ls为程序实际执行路径pa从入口点n1开始覆盖支配路径domdef(n1,use)的连续路径长度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息控制研究所,未经北京信息控制研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310524293.9/1.html,转载请声明来源钻瓜专利网。





