[发明专利]基于DBN的测试用例进化生成方法有效
申请号: | 201810097805.0 | 申请日: | 2018-01-31 |
公开(公告)号: | CN108446214B | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 包晓安;张唯;张娜 | 申请(专利权)人: | 浙江理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/00 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 郑海峰 |
地址: | 310018 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 dbn 测试 进化 生成 方法 | ||
1.一种基于DBN的测试用例进化生成方法,其特征在于,包括如下步骤:
(1)根据待测软件的需求文档的需求,构造测试用例集T作为训练DBN网络的训练集,设定所需生成的测试用例个数为N;
(2)插桩待测软件,并将测试用例集T中的所有测试用例在插桩后的软件中运行,从而获取测试用例集T中每个测试用例所对应的个体距离、分支距离和节点覆盖率,并根据这些数据计算测试用例集T中的每个个体的适应度函数值Fit;
(3)对获取的Fit值进行降序排序,将对应的测试用例划分成A、B、C、D、E这5大类;用来表示测试用例集T中测试用例的优劣等级,其中,优质程度为ABCDE,A类为优质测试用例,B、C、D类为待优化的测试用例,E类为劣质测试用例;
(4)将步骤(2)中获取到的个体距离、分支距离和节点覆盖率作为用于训练DBN网络的特征数据,并对这些数据进行归一化处理至[0,1]范围内;
(5)构建DBN网络,并用步骤(3)中归一化处理后的数据,对DBN网络进行训练,得到基于DBN的测试用例分类器;
(6)随机产生测试用例集,作为初始种群;
(7)将种群中的每个测试用例个体都输入到插桩后的被测程序中,获取到个体距离、分支距离和节点覆盖率并归一化数据范围至[0,1],并输入到已经训练得到的DBN分类器中进行分类,将所有的个体分成A、B、C、D、E,这5大类;A类测试用例视为优质测试用例,直接用于输出,B、C、D类为待进化的测试用例,E类为劣质的测试用例,直接进行淘汰;
(8)分别计算B、C、D类个体的数量占种群个体总量的比重并根据计算的比重自适应调节变异率和交叉率;
(9)根据(8)中计算得到的变异率和交叉率,对B、C、D类个体进行交叉、变异产生新的个体;
(10)将产生的新个体作为种群,然后重复步骤(7)~(9),直到输出的A类测试用例的个数达到需求值N为止;
(11)输出测试用例。
2.根据权利要求1所述的一种基于DBN的测试用例进化生成方法,其特征在于所述的步骤(2)中计算个体距离、分支距离、节点覆盖率、适应度函数值的方法为:
计算种群的个体距离公式为:
式中,d(xi,xj)表示两个个体之间的曼哈顿距离,xi和yj表示第k个群中的任意两个不同个体;
分支距离的计算公式为:
式中,Odistance表示分支距离,S是覆盖目标路径的路径数目,θ为大于零的常数;
节点覆盖率的计算公式为:
式中,Ncr表示节点覆盖率,τ是覆盖目标路径节点的节点数目,ω为目标路径的节点数目;
个体适应度函数为:
fit(xi,t)=αOdistance(xi,t)+βNcr(xi,t)+γd(xi,xj,t)
式中,fit(xi,t)表示个体适应度函数,Odistance(xi,t)、Ncr(xi,t)和d(xi,xj,t)分别是第t代中第k个种群中个体xi的分支距离、节点覆盖率和个体距离,α+β+γ=1,α是覆盖率影响因子,β是分支谓词影响因子,γ是种群多样性影响因子;
种群多样性的计算公式为:
Vk=ηDk+(1-η)fitk
式中,Vk表示种群的多样性,Dk是种群的曼哈顿距离fitk是个体的适应值,η不为零的常数,k表示当前种群,1≤k≤m,m为子种群总数;
调整原来的适应度函数:
式中,Fit表示调整后的适应度函数,Q(xi,t)是个体xi的贡献度;
按照计算得到的适应度函数值对T种的个体进行排序,适应度值越大则个体约优秀,按照降序排序的方式排列,分别按照5%、20%、30%、30%、15%的比重将测试用例分成A、B、C、D、E,5类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江理工大学,未经浙江理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810097805.0/1.html,转载请声明来源钻瓜专利网。