基于模糊遗传算法的嵌入式软件测试数据生成方法

文档序号:8445489阅读:376来源:国知局
基于模糊遗传算法的嵌入式软件测试数据生成方法
【技术领域】
[0001] 本发明涉及一种测试数据生成方法。
【背景技术】
[0002] 软件的错误通常是由少数几个参数的相互作用导致的,与某些输入参数取值的先 后顺序有关,尤其是当参数取值发生跳变时,更易引起软件错误。研宄发现,单个参数引发 的软件错误只占总体的20% -40%,而由两个参数相互作用引发的软件错误可达到总体的 70%,由三个参数引起的软件错误可达到总体的90%左右。随着参数个数的增大,测试数据 的规模及算法复杂程度呈指数增长,因此,两两组合测试技术一直组合测试领域中的研宄 热点。
[0003] 作为一种特殊形式的软件,嵌入式软件具有实时性强、可靠性要求高等特点,因 此,对其进行深入测试尤为必要。将组合软件测试方法应用于嵌入式软件测试,可通过硬 件接口自动注入测试数据、自动获取测试结果,实现嵌入式软件的自动化高覆盖率测试。测 试数据生成是嵌入式软件测试中的重要环节,也是组合测试研宄的热点。目前的数据生成 方法主要分为代数构造法、贪心算法和启发式智能算法等。在代数构造法中主要的方法是 正交设计法和TCconfig法;贪心算法主要包括AETG、TCG和IPO等方法;而蚁群算法(Ant ColonyAlgorithm)、粒子群群算法(ParticleSwarmOptimization)和遗传算法(Genetic Algorithm)等则属于智能算法。相对于贪心算法,启发式搜索算法能够给出较优的结果,但 是大多数启发式算法需要进行多次矩阵搜索,运行时间较长。
[0004] 遗传算法在组合测试数据的生成中被广泛应用,但是遗传算法容易陷入局部最 优,从而导致生成的测试数据集规模较大,时间较长。

【发明内容】

[0005] 本发明为了解决现有的测试数据生成方法生成的测试数据集规模较大导致的生 成时间较长的问题。
[0006] 1、基于模糊遗传算法的嵌入式软件测试数据生成方法,包括以下步骤:
[0007] 嵌入式软件中的一条测试数据T= (ai,a2,...,ak)即可认为是一条染色体, aipe[0,Vip-l],(ip= 1,2,. . .,k),测试数据T中第ip个参数的取值aip认为是染色体上 的第ip个基因,集合Vip为该基因所属的基因库,k为一条染色体上的基因个数;
[0008] 设当前已有的测试数据集合为A,未被A覆盖的全部t维交互所组成的集合为Q, 即0 = {/I/e 且V7;eA/g,I是t维交互,Ht嵌入式软件的测试系统全部t维 交互,#I;测试数据Tin中的全部交互,Tin是A中的一条测试数据,其适应值计算函数定义 为:淵=|凡"'圳;
[0009]步骤I. 1 :输入交互维度t,染色体进化代数Mg,染色体组规模Ng;第ip个参数的 取值区间为[0,vip-l],1彡ip彡k,k为一条染色体上的基因个数;令当前进化代数m= 0, 测试数据集A= ?,未被覆盖t维组合集Q为全部k个参数的t维取值集合;
[0010] 步骤1. 2 :初始化染色体组,随机为每一条染色体的基因赋初始值;
[0011] 步骤1.3:计算每条染色体的适应值,然后按照适应值从小到大进行排 序,记/(心,)为第ix条染色体的适应值,ixgNg,生成随机数pG[0, 1],如果
【主权项】
1.基于模糊遗传算法的嵌入式软件测试数据生成方法,其特征在于包括以下步骤: 嵌入式软件中的一条测试数据T = (ai,a2,…,ak)即可认为是一条染色体, aipe [〇, V ip-l],(ip = 1,2,…,k),测试数据T中第ip个参数的取值aip认为是染色体上 的第ip个基因,集合Vip为该基因所属的基因库,k为一条染色体上的基因个数; 设当前已有的测试数据集合为A,未被A覆盖的全部t维交互所组成的集合为Q,即Q ={111 e Ht,且e A / e //ι, },〗是t维交互,Ht嵌入式软件的测试系统全部t维交 互,测试数据Tin中的全部交互,T in是A中的一条测试数据,其适应值计算函数定义为: /(7:,,) = |{孖;'圳; 步骤I. 1 :输入交互维度t,染色体进化代数Mg,染色体组规模Ng;第ip个参数的取值 区间为[〇, Vip-I],1彡ip彡k,k为一条染色体上的基因个数;令当前进化代数m = 0,测试 数据集A = Φ,未被覆盖t维组合集Q为全部k个参数的t维取值集合; 步骤1. 2 :初始化染色体组,随机为每一条染色体的基因赋初始值; 步骤1. 3 :计算每条染色体的适应值,然后按照适应值从小到大进行排序,记/(\)为 第ix条染色体的适应值,i xe N g,生成随机数p e [〇, 1],如果
则认为第η条染色体为自然选择的结果,循环&次,选择出新的N 8条染色体,作为新的染色 体组; 步骤1. 4 :对种群乂的染色体进行随机配对,每一对染色体生成随机数q e [1,k],对 q位置的基因按照概率P。进行交叉,生成新的染色体组; 步骤1. 5 :对步骤1. 4生成新的染色体组中每一条染色体生成随机数q e [1,k],对q 位置的基因按照概率Pm进行变异; 步骤1.6:为每一条染色体计算适应值,判断种群最大适应值是否为q,如果是,进入 步骤1. 7 ;如果不是,则判读m是否等于Mg,如果相等则跳到步骤1. 7,否则令m = m+1,跳到 步骤1. 3 ; 步骤1. 7 :将适应值最大的染色体放入A,移除Q中已被适应值最大的染色体覆盖的t 维组合,判断Q是否为空,如果为空,则输出A结束,否则跳到步骤1. 2 ; 步骤2. 1 :输入测试数据集A,蚁群规模Ma,迭代次数Na;为每一只蚂蚁Ant H, H e [1,MJ,随机设定初始城市的位置,即A中的某条数据; 步骤2.2 :依次为每一只蚂蚁选择下一个城市,按照第W只蚂蚁的Jw⑴依次 计算转移概率,按照转移概率由小到大对城市进行排序,随机生成Pae [0, 1],计算 Cr Z /C..e J〃(C,),当〇^3时,蚂蚁H将选取城市C κ作为所要去的城市; C4=I 步骤2. 3 :判断全部蚂蚁是否已经走完全部城市,如果没有完成,则跳到步骤2. 2继续 完成;若完成,则记录最优路径的城市排序,更新信息素τ 判断蚁群遍历全部城市的次 数是否达到Na,若满足跳到步骤2. 4,否则跳到步骤2. 1 ; 步骤2. 4 :从全部的最优路径城市排序中选出最大距离,即最大离散度,的城市排序作 为最后的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1