[发明专利]一种基于独立路径的测试数据自动生成方法有效
申请号: | 201810372298.7 | 申请日: | 2018-04-24 |
公开(公告)号: | CN110399286B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 王曙燕;王瑞;孙家泽 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710121 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 独立 路径 测试数据 自动 生成 方法 | ||
1.一种基于独立路径的测试数据自动生成方法,其特征在于包括以下步骤:
(1)利用开源软件Soot代码分析工具,生成被测程序P的控制流图CFG,并进行精简以便于分析;
(2)对(1)中生成的控制流图CFG利用圈复杂度得到预防错误所需测试的最少路径条数,即独立路径数N,并对各个路径分支进行编码;根据被测程序P的实际问题,分析其输入输出的类型和范围,确定编码,得到测试用例取值范围;
(3)利用分支距离法对程序P的分支进行插桩,以此获得适应度函数F,其中F的计算方法如下:确定输入测试用例t经过了步骤(2)中的哪一条独立路径,测试用例t形成的路径Patht,路径Patht上共m分支,其中第j个分支节点的分支距离为f(Patht,j),若j分支被覆盖,则设f(Patht,j)值为0,若j分支未被覆盖,则f(Patht,j)为测试用例t在j节点上的分支距离,最终的适应度函数为M,c均为设定常数;
(4)在步骤(2)中得到的测试用例取值范围内,利用混沌序列初始化细菌种群S;
(5)以步骤(4)得到的种群,利用改进的细菌觅食算法BFOA以及步骤(3)中得到的适应度函数F更新迭代种群,其中,在改进的BFOA算法中,设计趋化操作的自适应步长计算公式如下:
其中,ω是调节因子,其目的是为了使得趋化步长在初期依赖趋化次数,后期依赖细菌的适应度值,因此设计使得ω在[0,1]之内递减,其中,NC表示趋化次数最大值,Nj表示当前的趋化次数;用μ表示期望,σ表示标准方差,b=μ,c=σ;Fmax、Fi、Fmin分别表示细菌的适应度最大值,当前细菌的适应度值和细菌的适应度最小值;C(i)表示标准的步长;
迁徙操作的迁徙概率计算如下:
其中Ped表示标准的细菌迁徙概率;
(6)将步骤(4)和步骤(5)产生的种群个体,覆盖被测程序P中的未被覆盖的独立路径的测试用例记录输出;
(7)判断算法的终止条件是否满足:如果不满足条件,跳回步骤(5)进行循环操作;如果满足条件,则结束算法,此时输出所有的测试用例集合。
2.根据权利要求1所述的一种基于独立路径的测试数据自动生成方法,其特征在于:步骤(2)中,对需要覆盖的分支独立路径编码采用数字型编码,分支语句对应的行号记为该分支对应位置的编码;步骤(2)中,对被测程序P的实际问题,确定编码,具体为:数值型,根据定义的数据类型为整数或者浮点数确定取值范围;字符型,使用ASCII码符号对应的数字进行编码;字符串,根据字符型进行编码。
3.根据权利要求1所述的一种基于独立路径的测试数据自动生成方法,其特征在于:步骤(4)中,混沌序列初始化细菌种群S具体如下:随机产生D维向量X=(x1,x2,…,xd),其中xi∈(0,1),1≤i≤d,d为维度;将X通过公式
迭代M次,其中a∈(0,1),当a=0.4时,其概率密度函数在(0,1)内服从均匀分布,迭代完成后得到M个向量Yi=(yi1,yi2,…,yid),i=1,2,…,M;将得到的混沌向量Y通过公式xid=p+yid|p-q|来映射到步骤(2)中的编码范围,其中p,q分别为步骤(2)中的编码的最小值和最大值,最后选取适应度值最高的S个种群,作为细菌觅食算法的初始解空间。
4.根据权利要求1所述的一种基于独立路径的测试数据自动生成方法,其特征在于:步骤(6)中,对步骤(4)产生的初始解和步骤(5)利用BFOA产生的解进行分析,判断解对应的测试用例覆盖被测程序P中,未被覆盖的哪一条独立路径,如果测试用例覆盖了一条之前未被覆盖的独立路径,则将该测试用例记录输出,这样结束之后,将得到一组测试用例集合T=(t1,t2,…,tN),N为被测程序P的独立路径数,其中,每一个测试用例ti(i=1,2,…,N)都覆盖了一条与集合中其他测试用例不同的独立路径。
5.根据权利要求1所述的一种基于独立路径的测试数据自动生成方法,其特征在于:步骤(7)中算法的终止条件:已经得到覆盖被测程序P中所有独立路径的测试用例,或达到设置的最大迭代次数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810372298.7/1.html,转载请声明来源钻瓜专利网。