[发明专利]一种用于白盒测试的测试用例优先级排序方法有效

专利信息
申请号: 201611140362.6 申请日: 2016-12-12
公开(公告)号: CN106528433B 公开(公告)日: 2018-10-02
发明(设计)人: 孙家泽;王刚;王曙燕 申请(专利权)人: 西安邮电大学
主分类号: G06F11/36 分类号: G06F11/36;G06N3/12
代理公司: 北京汇信合知识产权代理有限公司 11335 代理人: 吴甘棠
地址: 710000 *** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要: 针对白盒测试中的测试用例优先级排序问题,本发明公开了一种用于白盒测试的测试用例优先级排序方法。该方法首先在语句覆盖矩阵的基础上对个体进行编码,随机生成初始种群,并以语句覆盖平均百分比作为适应度函数;然后,通过选择、交叉以及变异操作生成新一代种群,使用适应度函数对个体进行评价,记录迭代中的最大适应值及其对应的个体;最后,当迭代次数达到最大迭代次数时,最大适应值对应的个体是最优排序结果。与已有的方法相比,本发明提供一种收敛速度快、稳定性好的测试用例优先级排序方法,本方法有助于在白盒测试过程中尽早发现软件缺陷,降低测试成本。
搜索关键词: 一种 用于 测试 优先级 排序 方法
【主权项】:
1.一种用于白盒测试的测试用例优先级排序方法,其特征在于包括以下几个步骤:步骤一:针对一个待测程序,使用已经设计好的测试用例集进行测试,将测试用例对待测程序的语句覆盖情况进行记录,得到测试用例对待测程序的语句覆盖信息矩阵A;假设某待测程序有m条语句,用n个测试用例进行测试,若测试用例集用Φ表示,Φ={T1,T2,…,Ti,…,Tn},其中Ti(1≤i≤n)为测试用例集中的第i个测试用例,构造的语句覆盖信息矩阵A的大小为n×m,待测程序中语句编号的范围是1到m,测试用例编号的范围是1到n,若第i个测试用例执行中覆盖了第j个语句,则Aij=1,否则Aij=0;步骤二:编码;测试用例优先级排序问题针对给定的待测程序和测试用例集,个体表示一个测试用例优先级排序序列,测试用例优先级排序序列就是由测试用例编号所组成的有序序列,即每一个个体被编码为一个有序测试用例编号串,编码的长度为测试用例的个数n;步骤三:构造适应度函数;针对任一个体,TSv为首个可以覆盖到待测程序中第v个语句Sv的测试用例在该测试用例执行序列中所处的次序,假设执行完测试后待测程序中被覆盖的语句的数量为M,那么M个语句对应M个这样的次序,所有次序之和为由此可以构造适应度函数APSC,APSC表示语句覆盖的平均百分比,其中TSv(1≤v≤M)可以用语句覆盖信息矩阵A进行计算,针对被覆盖的语句Sv,在A中查找第一个覆盖到该语句的测试用例在该测试用例序列中所处的次序,那么这个次序就是TSv的数值;步骤四:随机初始化种群;设定种群规模为N,即种群中包含N个个体,若用D表示种群,则D={,,…,,…,},其中代表种群中的第w个个体;设置交叉概率Pc和变异概率Pm以及最大迭代次数MAX;令迭代次数g=1,开始迭代;步骤五:执行随机抽样选择策略;(1)计算种群中所有个体的适应值,得到一个由N个适应值组成的数组,表示为{Fitness1,Fitness2,…,FitnessN},其中Fitnessindividual(1≤individual≤N)表示种群中第individual个个体的适应值,若种群适应值的平均值用averageFitness表示,则随机生成一个实数start(0<start<averageFitness);令index=1,index表示个体编号,令种群适应值之和sum初值为Fitness1;(2)令select为当前已经选择的个体的数量;计算pointer=start+select×averageFitness,pointer为衡量种群中个体适应值大小的依据,若Fitnessindex<pointer,那么进行如下操作:a.index=index+1,sum=sum+Fitnessindex;b.重复执行a中的操作,当sum≥pointer时,将index的值保存在individuals数组中的第select+1个位置,并停止b中操作;(3)select=select+1,重复执行(2)中的操作,当select=N时,停止选择操作;(4)将individuals数组中的数字作为下标,用这些下标对应的每一个个体顺次替换当前种群中的每一个个体,得到与原种群大小相同的新一代种群;步骤六:执行交叉操作;针对种群中任意两个个体A1和A2,设假设交叉操作后产生的子代个体为A1'和A2';随机生成一个0到1的实数,当Pc大于这个实数时,执行交叉操作,交叉操作后产生的子代个体取代父代个体进入新种群,没有进行交叉的个体被直接复制进新种群;交叉操作的具体过程如下:(1)计算A1和A2中相同位置上数值不同的位置数量,假设为t,则A1和A2中相同位置上数值相同的位置数量为n‑t;(2)产生N个序列,每个序列为一个长度为t的排列,N个序列中第k个序列可以表示为其中k=1,2,…,N,1≤u≤t,<ru×k>表示取ru×k的小数部分,如果小数部分为负数,那么将负数加1,使该负数变成一个正数,其中ru=2cos(2πu/q),q是满足q≥2t+3的最小素数;(3)删除A1和A2中的n‑t个相同位置上的相同数值,将余下的t个相同位置上的不同数值按照由小到大的顺序进行排序,记排序后由t个数值组成的序列为s,s=<s1,s2,…,sh,…,st>,其中s1≤s2≤…≤sh≤…≤st(1≤h≤t);将按照由小到大的顺序排列为记该序列为Pk';记录经过排序后在Pk'中所处的位置,根据位置的变化情况对sh在s中所处的位置进行重新调整,得到由s1,s2,…,st组成的一个新的序列,记为s',再使用s'中的每一个数值分别填充A1和A2中相同位置上具有不同数值的t个位置,就得到了一个新的序列,记为Sk,该序列长度为n;当k取1,2,…,N‑1,N中的每一个数值时,都执行(3)中上述操作,就可以生成N个长度为n的序列,记为S={S1,S2,…,SN};(4)计算(3)中生成的N个序列的适应值,A1'和A2'中各个位置上的数值与适应值最大序列中各个位置上的数值对应相同;步骤七:执行变异操作;对于种群中任意一个个体,假设为B,随机生成一个0到1的实数,当Pm大于这个实数时,对B执行变异操作,变异操作的过程为:从B上随机选择两个位置,将这两个位置上的数值进行交换,从而得到一个新的个体B';步骤八:记录本次迭代后的最大适应值及其对应的个体;步骤九:判断迭代终止条件,本方法中的迭代终止条件是当前迭代次数大于最大迭代次数MAX,如果终止条件成立,那么此时最大适应值个体对应的测试用例优先级排序序列为最优测试用例优先级排序序列,输出该序列并停止迭代;否则,令迭代次数g=g+1,返回步骤五,继续迭代。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201611140362.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top