[发明专利]一种基于支配关系的测试用例生成方法与装置有效
申请号: | 202010868410.3 | 申请日: | 2020-08-26 |
公开(公告)号: | CN112052166B | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 吉顺慧;刘凡;张鹏程 | 申请(专利权)人: | 河海大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/12 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 孟红梅 |
地址: | 210024 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 支配 关系 测试 生成 方法 装置 | ||
1.一种基于支配关系的测试用例生成方法,其特征在于,所述方法包括:
基于构建的待测试程序的控制流图CFG模型分析程序的数据流,计算程序中的定义-使用对;
定义基于支配关系的适应度函数,利用面向多目标的遗传算法生成满足all-uses准则的测试用例集;其中测试用例x关于变量var的定义-使用对(var,d,u)基于支配关系的适应度函数表示为:
其中,p(x)表示测试用例x的执行路径,d、u分别是变量var的定义结点和使用结点;
其中,dom(d)是定义结点d的支配结点集,dom(u)是包括使用结点u的支配结点和定义结点d的结点集,cdom(d)和cdom(u)分别是dom(d)和dom(u)中被p(x)覆盖的结点集,fdom(d∨u)是dom(d)和dom(u)的并集中被p(x)覆盖超过1次的结点集,udom(d∨u)是dom(d)和dom(u)的并集中未被p(x)覆盖的结点集;设sp(x)是p(x)中使得定义结点d中的定义保持活性的子路径,pre(x)是p(x)中从开始结点到第一个定义结点d之间的子路径,dom1(u)是定义结点d和使用结点u之间u的支配结点集,dom2(u)是dom(u)中不属于dom1(u)的支配结点集,cdom1(u)是dom1(u)中被子路径sp(x)覆盖的结点集,cdom2(u)是dom2(u)中被子路径pre(x)覆盖的结点集;fdom’(u)是dom1(u)中被子路径sp(x)覆盖超过1次的结点集,udom’(u)是dom1(u)中未被子路径sp(x)覆盖的结点集;α是预设的阈值,0.85≤α≤0.95,max表示对p(x)的多条子路径sp(x)的计算值取最大值;
利用面向多目标的遗传算法生成满足all-uses准则的测试用例集的方法为:随机生成初始种群作为当前种群,对当前种群中的每个个体解码,作为输入运行插装后的程序获取执行路径,利用适应度函数计算个体对各定义-使用对的适应度值,判断个体是否覆盖某定义-使用对;若还存在未覆盖的定义-使用对或设定的最大迭代次数未达到,则对当前种群进行选择、交叉、变异,得到新的种群,并对新种群中的个体进行判断;在遗传算法的一次迭代中,种群面临的问题目标是覆盖所有待测试的定义-使用对,若某些定义-使用对被该种群中的个体覆盖到,则将它们从待覆盖的定义-使用对集合中删除,如此随着测试用例的生成,待覆盖的目标数量渐减。
2.根据权利要求1所述的一种基于支配关系的测试用例生成方法,其特征在于,计算p(x)中使得定义结点d中的定义保持活性的子路径sp(x)的方法为:对p(x)中出现的每个定义结点d,从d开始识别下一个对变量var进行定义的结点ni,若不存在这样的结点,则ni是p(x)中的最后一个结点,得到子路径sp(x)=(d,n1,n2,…,ni)。
3.根据权利要求1所述的一种基于支配关系的测试用例生成方法,其特征在于,计算程序中定义-使用对的具体步骤包括:
基于CFG模型,利用如下数据流公式,分析各结点的可达定义:
Out(n)=Gen(n)∪(In(n)-Kill(n))
其中,In(n)和Out(n)分别表示程序结点n的入口处和出口处可达的变量定义集,Gen(n)和Kill(n)分别表示程序结点n的产生定义集和杀死定义集;若程序结点n定义了变量var,则(var,n)∈Gen(n),若程序中存在另外的结点m定义了变量var,则(var,m)∈Kill(n);pred(n)表示CFG中结点n的前驱结点集合;
基于每个程序结点入口处的可达定义,利用如下公式获取程序中关于变量var的所有定义-使用对(var,n,n’):
du(var,n)={n’|(var,n)∈In(n’)∧var∈use(n’)}
其中,du(var,n)表示使用变量var在结点n处定义值的结点集,∧表示“且”的数学符号;use(n’)=cuse(n’)∪puse(n’),cuse(n’)表示结点n’中计算使用的变量集,puse(n’)表示结点n’中谓词使用的变量集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学,未经河海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010868410.3/1.html,转载请声明来源钻瓜专利网。