一种基于双混沌鲸鱼优化算法的测试用例自动生成方法技术

技术编号:24330914 阅读:34 留言:0更新日期:2020-05-29 19:34
本发明专利技术公开了一种基于双混沌鲸鱼优化算法的测试用例自动生成方法,属于计算机测试领域,具体包括如下步骤:获取被测程序,得到输入参数个数,对被测程序进行分析将其转化成控制流图并进行程序插桩;根据控制流图算出被测程序的测试路径集,使用混沌序列代替鲸鱼算法中的随机算法对种群进行初始化;根据层接近法和分支距离法得到适应度函数;每次针对一条测试路径,对种群进行优化,得到最优值后进行混沌扰动操作得到新的初始化种群后,再次进行鲸鱼优化算法,反复迭代以得到一组测试用例;如此反复,可得到完整的测试用例集。本发明专利技术将鲸鱼优化算法运用到测试用例生成中,通过对该算法两次使用混沌策略,提高了测试用例的生成效率。

An automatic test case generation method based on two chaos whale optimization algorithm

【技术实现步骤摘要】
一种基于双混沌鲸鱼优化算法的测试用例自动生成方法
本专利技术属于计算机测试领域,具体涉及一种基于双混沌鲸鱼优化算法的测试用例自动生成方法。
技术介绍
基于路径覆盖的软件测试是现在普遍使用的软件测试方法,而测试用例自动生成对提升软件测试的效率起着关键性作用。近年来,国内外研究人员将自动生成测试用例与各种元启发式优化算法不断结合,在生成测试用例的时间和质量上都有很大的提升。现在普遍使用的是遗传算法和粒子群算法,例如尤枫等人提出的基于输出域的测试用例自动生成方法,姜淑娟等人提出的基于模式组合的粒子群优化测试用例生成方法。遗传算法已经普遍应用于以路径覆盖为基础的测试用例自动生成中,但还存在两个问题:第一,在搜索最优解时,很难确保算法可以收敛到全局最优解;第二,没有有效的适应度函数用来支撑测试数据的选择。由于粒子群算法的结构简单、寻优速度快,研究人员将粒子群算法引入到测试用例生成中,并且证明了粒子群算法确实比遗传算法更有效。但由于粒子群算法的参数多,参数控制会严重影响到后期算法的收敛稳定性。能否收敛到全局最优解以及收敛速度成了现在需要解决的关键问题。
技术实现思路
本专利技术的目的是针对现有的元启发式算法存在的上述不足,提出了一种基于双混沌鲸鱼优化算法的测试用例自动生成方法,解决了元启发式算法容易陷入局部最优解的问题,提高了算法收敛速度。为了实现上述目的,本专利技术采用如下技术方案:一种基于双混沌鲸鱼优化算法的测试用例自动生成方法,具体包括以下步骤:步骤1:获取被测程序,对其进行分析得到输入参数个数k,并将被测程序转化成控制流图;步骤2:对被测程序进行插桩;步骤3:计算被测程序的测试路径集PAT片={path1,path2,...,pathn};其中,n表示测试路径总数;步骤4:初始化种群数量NP、最大迭代次数Maxgen和最优值Spath;使用Logistic映射产生混沌序列来对粒子进行初始化,得到鲸鱼个体集合S={Si|i=1,2,...NP},其中每个鲸鱼个体Si能够表示为k维的位置向量(x1,x2,...,xk);步骤5:使用层接近法和分支距离法得到适应度函数;步骤6:从测试路径集PATH中选择一条路径pathj作为目标测试路径;其中,j表示第j条测试路径,j的取值从1到n;步骤7:运行插桩后的代码,得到标识变量和分支距离信息;步骤8:根据适应度函数计算个体的适应度值,并找出当前迭代最优个体Siter;步骤9:若当前迭代最优个体Siter优于目标测试路径的最优值Spath,则更新最优值Spath,否则直接执行步骤10;步骤10:若最优值Spath已覆盖目标路径pathj,或者迭代次数已经达到最大迭代次数Maxgen,则跳转到步骤12,否则跳转到步骤11;步骤11:对最优值Spath进行混沌扰动操作,从混沌序列中获得最优个体S*;分别以Spath和S*为中心,以NP/2为种群数目,组成一个新的种群,并将其作为新的输入,跳转到步骤7;步骤12:终止种群进化,将最优值Spath保存到测试用例集A中;将j加1,若j大于n,则跳转到步骤13,否则,将最优值设为空,将步骤4中的初始化个体作为新的初始化种群,将测试路径集PATH中的路径pathj作为新的目标测试路径并跳转到步骤7;步骤13:终止循环并输出测试用例集A。优选地,在步骤5中:层接近法指的是实际测试路径与目标测试路径pathj的接近程度,层接近法的适应度值计算公式如(1)所示:其中,layer_method(Si)表示鲸鱼个体Si层接近法的适应度值,u表示测试路径的分支总数,u表示实际测试路径与目标测试路径不相同的分支数;分支距离法指的是实际测试路径分支与目标测试路径分支之间的距离,当距离为0时,表示该分支已被覆盖;分支距离法的适应度值计算公式如(2)所示:其中,layer_method(Si)表示鲸鱼个体Si分支距离法的适应度值,dism表示当前鲸鱼个体Si与第m条分支的距离;适应度函数的表示形式如公式(3)所示:fitness(Si)=layer_method(Si)+branch_method(Si)(3);其中,layer_method(Si)表示鲸鱼个体Si层接近法的适应度值,layer_method(Si)表示鲸鱼个体Si分支距离法的适应度值。本专利技术所带来的有益技术效果:现有的测试用例自动生成大多采用的是随机算法,而研究人员主要研究的是粒子群优化算法的改进,并没有再去尝试利用一些新型启发式优化算法来进行测试用例自动生成,而本专利技术申请首次采用鲸鱼优化算法到测试用例自动生成中。首先初始化鲸鱼种群,然后根据适应度值执行鲸鱼优化算法,最终得到适应度值最小的鲸鱼个体即为最优测试用例。鲸鱼优化算法有两个优点,一是该算法的结构简单,计算量小,参数简单便于参数控制,可以解决粒子群算法由于参数多而产生的参数控制问题;二是算法的搜索机制独特,分别以50%的概率随机选择收缩圈和螺旋气泡网的两种方式更新个体位置,为跳出局部最优解提供了可能性;本专利技术申请综合了鲸鱼优化算法结构简单,计算量小,既解决了随机算法过于简单,又解决了粒子群本身参数控制难的问题;其次,本专利技术采用的覆盖准则是路径覆盖准则,具有更高的纠错能力;本专利技术申请在进行鲸鱼优化算法时,结合使用了两次混沌操作。首先在鲸鱼优化算法初始化鲸鱼种群时,随机算法初始化的粒子分散不均匀,多样性差,使用Logistic映射产生初始化种群,使粒子分布更加均匀,提高了粒子多样性,防止粒子过早陷入局部最优解,提高了算法的收敛速度;其次在当前迭代得到目标测试路径的最优值Spath时,对其进行混动扰动操作,从混沌序列中再获得一个最优值S*,接着以这两个最优值为中心,初始化NP/2数目的个体种群,组成新的初始化种群,再次进行鲸鱼优化算法的优化,在粒子陷入局部最优解时也能跳出局部最优,收敛到全局最优,从而提高测试用例的生成效率。附图说明图1为三角形分类程序图。图2为鲸鱼优化算法的流程图。图3为三角形分类的控制流图。图4为实验结果图。具体实施方式下面结合附图以及具体实施方式对本专利技术作进一步详细说明:实验选取了如图1所示的三角形分类程序作为实例,验证了如图2所示的测试用例自动生成的整个流程,包括以下步骤:实验环境配置:windows10操作系统、matlabR2018b、C语言、lcov1.13。输入:种群数量NP,最大迭代次数Maxgen,种群维度k,初始化种群位置S={Si|i=1,2,...NP}。输出:测试用例集A。步骤1:获取被测程序,三角形分类程序的输入参数个数k=3,分别为(a,b,c),并将被测程序转化成如图3所示的控制流程。步骤2:程序插桩是指使用gcc编译器被测程序进行插桩编译,以便获取在步骤7中需要的可执行文件。步本文档来自技高网...

【技术保护点】
1.一种基于双混沌鲸鱼优化算法的测试用例自动生成方法,其特征在于,具体包括以下步骤:/n步骤1:获取被测程序,对其进行分析得到输入参数个数k,并将被测程序转化成控制流图;/n步骤2:对被测程序进行插桩;/n步骤3:计算被测程序的测试路径集PATH={path

【技术特征摘要】
1.一种基于双混沌鲸鱼优化算法的测试用例自动生成方法,其特征在于,具体包括以下步骤:
步骤1:获取被测程序,对其进行分析得到输入参数个数k,并将被测程序转化成控制流图;
步骤2:对被测程序进行插桩;
步骤3:计算被测程序的测试路径集PATH={path1,path2,...,pathn};其中,n表示测试路径总数;
步骤4:初始化种群数量NP、最大迭代次数Maxgen和最优值Spath;使用Logistic映射产生混沌序列来对粒子进行初始化,得到鲸鱼个体集合S={Si|i=1,2,...NP},其中每个鲸鱼个体Si能够表示为k维的位置向量(x1,x2,...,xk);
步骤5:使用层接近法和分支距离法得到适应度函数;
步骤6:从测试路径集PATH中选择一条路径pathj作为目标测试路径;其中,j表示第j条测试路径,j的取值从1到n;
步骤7:运行插桩后的代码,得到标识变量和分支距离信息;
步骤8:根据适应度函数计算个体的适应度值,并找出当前迭代最优个体Siter;
步骤9:若当前迭代最优个体Siter优于目标测试路径的最优值Spath,则更新最优值Spath,否则直接执行步骤10;
步骤10:若最优值Spath已覆盖目标路径pathj,或者迭代次数已经达到最大迭代次数Maxgen,则跳转到步骤12,否则跳转到步骤11;
步骤11:对最优值Spath进行混沌扰动操作,从混沌序列中获得最优个体S*;分别以Spath和S*为中心,以NP/2为种群数目,组成一个新的种群...

【专利技术属性】
技术研发人员:赵卫东王静王铭刘昊
申请(专利权)人:山东科技大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1