[发明专利]一种上位多目标测试用例优先级排序方法有效
申请号: | 201811092217.4 | 申请日: | 2018-09-19 |
公开(公告)号: | CN109271320B | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 孙家泽;王刚;王曙燕 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/00 |
代理公司: | 北京汇信合知识产权代理有限公司 11335 | 代理人: | 吴甘棠 |
地址: | 710061 陕西*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 针对回归测试中的多目标测试用例优先级排序问题,本发明公开了一种上位多目标测试用例优先级排序方法。该方法首先以测试用例编号有序序列作为粒子编码,测试用例编号序列的集合作为粒子群,随机生成初始种群;以测试用例序列对待测程序的平均分支覆盖率和有效执行时间作为适应度评价函数;然后采用上位交叉的方法产生新个体,使用非支配解集中的粒子作为全局最优粒子;最后,当迭代次数达到最大迭代次数时,非支配解集中的个体就是最优多目标排序结果。与已有的方法相比,本发明提供一种非支配解集分布范围广、适应值更高的多目标测试用例优先级排序方法,本方法有助于在回归测试过程中尽早发现软件缺陷,降低测试成本。 | ||
搜索关键词: | 一种 上位 多目标 测试 优先级 排序 方法 | ||
【主权项】:
1.一种上位多目标测试用例优先级排序方法,其特征在于包括以下步骤:步骤一:记录回归测试中的各个测试用例的分支覆盖情况和有效执行时间得到测试用例分支覆盖矩阵A和有效执行时间向量V;假设某待测程序有m个分支,用n个测试用例进行测试,若测试用例集用Φ表示,Φ={T1,T2,…,Ti,…,Tn},其中Ti(1≤i≤n)为测试用例集中的第i个测试用例,构造的分支覆盖矩阵A的大小为n×m,有效执行时间向量V的大小为n,待测程序中分支编号的范围是1到m,测试用例编号的范围是1到n,第i个测试用例的有效执行时间为ETi,若第i个测试用例执行中覆盖了第j个分支,则Aij=1,否则Aij=0;步骤二:编码;针对给定的待测程序和测试用例集,给每一个测试用例一个1到n的编号,测试用例执行优先排序序列就是测试用例编号的一个全排列,个体被编码为一个测试用例编号全排列串,编码的长度为测试用例的个数n;步骤三:构造适应度函数;选择用平均分支覆盖率(Average Percentageof Branch Coverage,APBC)和有效执行时间(Effective Execution Time,EET)两个目标作为适应度函数来衡量一个测试用例优先排序序列的优劣;针对任一个体,TBi表示首个覆盖程序中第i个分支的测试用例在该测试用例优先排序序列中所处的位置。执行完序列上的前m'个测试用例时,能够覆盖被测程序中的所有分支,ETi表示执行测试用例优先排序序列中第i个测试用例花费的时间。由此可以构造适应度函数APBC和EET,![]()
其中TBi可以用分支覆盖矩阵A进行计算,针对被覆盖的第i个分支,在A中查找第一个覆盖到该语句的测试用例在该测试用例序列中所处的次序,那么这个次序就是TBi的数值;步骤四:随机初始化种群;设定种群规模为N,即种群中包含N个个体,随机初始化各个粒子为测试用例编号的全排列,并作为该粒子的历史最优,随机初始各个粒子的初始速度为一个测试用例编号的全排列,计算各个个体的适应值,根据种群中所有个体之间帕托累关系计算初始种群的非支配解集ARCHIVE,从种群的ARCHIVE中随机取一个粒子作为全局最优粒子,设置最大迭代次数MAX;令迭代次数W=1,开始迭代:步骤五:采用上位交叉的方法产生新的子个体,选择两个本次没有更新的个体作为父代个体,针对父代个体1和父代个体2,其子代个体1和子代个体2的具体产生过程如下:1)随机产生两个整数k1、k2作为交叉点,k1,k2∈[0,n‑1],其中n为测试用例集中测试用例的数目;2)将父代个体1上两个交叉点之间的基因直接复制到其对应的子代个体1中,作为该子代个体对应位置上的基因;3)遍历父代个体2,剔除与父代个体1上两个交叉点之间相同的基因,记剩余基因形成的序列为s1;4)以子代个体1上第一个没有基因的位置作为起始位置,用s1中的基因依次填充子代个体1上没有基因的位置,形成完整的子代个体1;5)将父代个体2上两个交叉点之间的基因直接复制到其对应的子代个体2中,作为该子代个体对应位置上的基因;6)遍历父代个体1,剔除与父代个体2上两个交叉点之间的基因相同的基因,记剩余基因形成的序列为s2;7)以子代个体2上第一个没有基因的位置作为起始位置,用s2中的基因依次填充子代个体2上没有基因的位置,形成完整的子代个体2;步骤六:使用步骤五的上位交叉方法对粒子进行更新,针对上位交叉后产生的两个子代个体,如果两个子个体是帕累托支配关系,则选择支配的子个体作为交叉结果,如果是帕累托非支配关系,则任选一个子个体作为交叉结果。针对第i个粒子,首先对迭代完成后的个体历史最优解pi(k)与全局最优解pg(k)进行上位交叉得到一个表示粒子速度的增量vi'(k+1);然后vi'(k+1)与粒子当前的速度vi(k)进行上位交叉得到粒子更新后的速度vi(k+1);最后,对粒子当前位置xi(k)和更新后的速度vi(k+1)进行上位交叉得到粒子更新后的位置xi(k+1);步骤七:对于第i个粒子,若当前粒子能支配比该粒子局部最优位置,则将粒子的当前位置作为该粒子的历史最优解;步骤八:更新当前种群的非支配解集ARCHIVE,将当前粒子和非支配解集ARCHIVE中各个个体进行帕累托支配关系计算,如果当前粒子支配ARCHIVE中某些个体,则用当前粒子替换其支配的ARCHIVE集中支配的个体,如果和当前ARCHIVE中所有个体是非支配关系,则加入ARCHIVE集;步骤九:全局最优粒子是从非支配解集ARCHIVE随机选择一个粒子作为全局最优粒子;步骤十:如果当前的迭代次数达到最大迭代次数MAX,则ARCHIVE集中所对应的粒子代表测试用例排序方案就是帕累托最优解集,结束循环;否则,W=W+1,返回步骤五。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811092217.4/,转载请声明来源钻瓜专利网。