发明名称 基于模糊遗传算法的嵌入式软件测试数据生成方法
摘要 基于模糊遗传算法的嵌入式软件测试数据生成方法,涉及一种测试数据生成方法。为了解决现有的测试数据生成方法生成的测试数据集规模较大导致的生成时间较长的问题。本发明对遗传算法进行改进,利用模糊控制方法,通过种群熵和离散度自适应地控制遗传过程中遗传算子的选取,在种群多样性变差时增大交叉概率和变异概率,使得种群朝全局最优的方向进化,以缩小测试数据的规模;然后利用蚁群算法对生成的组合测试数据按照较大的离散度进行排序,以增大测试参数相邻测试数据取值间的“距离”,从全部组合测试数据的最优路径排序中选出大离散度的测试数据排序作为最后的嵌入式软件测试数据输出。本发明适用于嵌入式软件测试数据生成。
申请公布号 CN104765690A 申请公布日期 2015.07.08
申请号 CN201510191411.8 申请日期 2015.04.22
申请人 哈尔滨工业大学 发明人 魏长安;王建峰;盛云龙;姜守达
分类号 G06F11/36(2006.01)I;G06N3/12(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 哈尔滨市松花江专利商标事务所 23109 代理人 杨立超
主权项 基于模糊遗传算法的嵌入式软件测试数据生成方法,其特征在于包括以下步骤:嵌入式软件中的一条测试数据T=(a<sub>1</sub>,a<sub>2</sub>,…,a<sub>k</sub>)即可认为是一条染色体,a<sub>ip</sub>∈[0,v<sub>ip</sub>‑1],(ip=1,2,…,k),测试数据T中第ip个参数的取值a<sub>ip</sub>认为是染色体上的第ip个基因,集合v<sub>ip</sub>为该基因所属的基因库,k为一条染色体上的基因个数;设当前已有的测试数据集合为A,未被A覆盖的全部t维交互所组成的集合为Q,即Q={I|I∈H<sub>t</sub>,且<img file="FDA0000703477010000013.GIF" wi="382" he="64" />},I是t维交互,H<sub>t</sub>嵌入式软件的测试系统全部t维交互,<img file="FDA0000703477010000014.GIF" wi="97" he="68" />测试数据T<sub>in</sub>中的全部交互,T<sub>in</sub>是A中的一条测试数据,其适应值计算函数定义为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>T</mi><mi>in</mi></msub><mo>)</mo></mrow><mo>=</mo><mo>|</mo><mo>{</mo><msub><mi>H</mi><mrow><msub><mi>Y</mi><mi>in</mi></msub><mo>,</mo><mi>t</mi></mrow></msub><mo>&cap;</mo><mi>Q</mi><mo>}</mo><mo>|</mo><mo>;</mo></mrow>]]></math><img file="FDA0000703477010000015.GIF" wi="439" he="97" /></maths>步骤1.1:输入交互维度t,染色体进化代数M<sub>g</sub>,染色体组规模N<sub>g</sub>;第ip个参数的取值区间为[0,v<sub>ip</sub>‑1],1≤ip≤k,k为一条染色体上的基因个数;令当前进化代数m=0,测试数据集A=Φ,未被覆盖t维组合集Q为全部k个参数的t维取值集合;步骤1.2:初始化染色体组,随机为每一条染色体的基因赋初始值;步骤1.3:计算每条染色体的适应值,然后按照适应值从小到大进行排序,记<img file="FDA0000703477010000011.GIF" wi="140" he="85" />为第i<sub>x</sub>条染色体的适应值,i<sub>x</sub>∈N<sub>g</sub>,生成随机数p∈[0,1],如果<img file="FDA0000703477010000012.GIF" wi="581" he="165" />则认为第n条染色体为自然选择的结果,循环N<sub>g</sub>次,选择出新的N<sub>g</sub>条染色体,作为新的染色体组;步骤1.4:对种群N<sub>g</sub>的染色体进行随机配对,每一对染色体生成随机数q∈[1,k],对q位置的基因按照概率p<sub>c</sub>进行交叉,生成新的染色体组;步骤1.5:对步骤1.4生成新的染色体组中每一条染色体生成随机数q∈[1,k],对q位置的基因按照概率p<sub>m</sub>进行变异;步骤1.6:为每一条染色体计算适应值,判断种群最大适应值是否为<img file="FDA0000703477010000016.GIF" wi="80" he="62" />如果是,进入步骤1.7;如果不是,则判读m是否等于M<sub>g</sub>,如果相等则跳到步骤1.7,否则令m=m+1,跳到步骤1.3;步骤1.7:将适应值最大的染色体放入A,移除Q中已被适应值最大的染色体覆盖的t维组合,判断Q是否为空,如果为空,则输出A结束,否则跳到步骤1.2;步骤2.1:输入测试数据集A,蚁群规模M<sub>a</sub>,迭代次数N<sub>a</sub>;为每一只蚂蚁Ant<sub>H</sub>,H∈[1,M<sub>a</sub>],随机设定初始城市的位置,即A中的某条数据;步骤2.2:依次为每一只蚂蚁选择下一个城市,按照第W只蚂蚁的J<sub>w</sub>(i)依次计算转移概率,按照转移概率由小到大对城市进行排序,随机生成p<sub>a</sub>∈[0,1],计算<img file="FDA0000703477010000021.GIF" wi="488" he="154" />当C<sub>R</sub>&gt;P<sub>a</sub>时,蚂蚁H将选取城市C<sub>R</sub>作为所要去的城市;步骤2.3:判断全部蚂蚁是否已经走完全部城市,如果没有完成,则跳到步骤2.2继续完成;若完成,则记录最优路径的城市排序,更新信息素τ<sub>ij</sub>;判断蚁群遍历全部城市的次数是否达到N<sub>a</sub>,若满足跳到步骤2.4,否则跳到步骤2.1;步骤2.4:从全部的最优路径城市排序中选出最大距离,即最大离散度,的城市排序作为最后的排序结果A'输出。
地址 150001 黑龙江省哈尔滨市南岗区西大直街92号