[发明专利]一种基于多种群遗传算法的软件测试用例生成方法在审
| 申请号: | 202110028395.6 | 申请日: | 2021-01-14 |
| 公开(公告)号: | CN112699045A | 公开(公告)日: | 2021-04-23 |
| 发明(设计)人: | 党向盈;巩敦卫;姚香娟;鲍蓉;姜代红;阮少伟;徐玮玮;申珅;袁媛;包季楠;袁偲朕 | 申请(专利权)人: | 徐州工程学院 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/12 |
| 代理公司: | 徐州市三联专利事务所 32220 | 代理人: | 陈帅 |
| 地址: | 221000 *** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 多种 遗传 算法 软件 测试 生成 方法 | ||
1.一种基于多种群遗传算法的软件测试用例生成方法,其特征在于:该方法包括以下步骤:
S1:基于相关输入变量分组变异分支;
S1.1:采用静态分析方法确定变异分支与输入变量的相关性,具体为:
设被测程序为G,对其包含的语句实施变异,得到变异分支集合为M={M1,M2,…,Mn},n是变异分支的个数;将这些变异分支插入到G中,得到新的被测程序G';
设被测程序的输入向量为X=(x1,x2,…,xm),m是被测程序输入变量的数目;输入域D(X)是每个输入变量域的叉乘,即D(X)=D(x1)×D(x2)×…×D(xm);
设D*(xj)是D(xj)的子域,如果某一个输入变量xj在D*(xj)取不同的值,能够影响Mi是否被杀死,那么,定义xj在D*(xj)与Mi相关;否则定义xj在D*(xj)与Mi不相关;
S1.2:构建变异分支与输入量之间的相关矩阵,分组变异分支,具体为:
变异分支与输入变量之间的相关矩阵,可以表示为:
在Λ中,ρij=1表示xj与Mi相关;ρij=0表示xj与Mi不相关;
分组变异分支的算法为:
A1:k=1;
A2:设
A3:考察的第1行的每一个元素,如果ρ1j=0,移除对应的第j列;
A4:考察约简后每行,如果ρij=0,移除对应的第i行;
A5:获得第k组变异分支其中为变异分支的个数;与其相关的输入变量记为其中lk为相关变量个数;
A6:从M中删除从Λ删除对应的行,删除对应的列;
A7:判断Λ是否为空;如果不为空,k=k+1;转A2;否则,转A8;
A8:输出变异分支组C1,C2,…,Cβ。
S2:构建多任务优化变异测试用例生成模型,具体为:
对于组Ck中变异分支与它相关的输入变量为那么决策向量记为对于生成变异测试用例的优化模型,可以表示为:
其中为所形成的取值域;为目标函数,当杀死当没有杀死
S3:生成基于多种群遗传算法变异测试用例,具体算法为:
B1:在每个组中,随机选一个变异分支作为优化目标;初始化子种群和遗传参数;
B2:每个子种群在各自的组中执行变异分支;
B3:判断终止条件是否满足,如果没有满足,转B4;如果满足,转B8;
B4:如果中某个个体能杀死如果能,转B5;如果不能,转B6;
B5:判断是否能杀死Ck中所有变异分支,如果能,停止该子种群的进化,β=β-1,转B7;如果不能,在Ck选没杀死的一个变异分支作为优化目标;转B6;
B6:计算适应值执行选择、交叉、变异遗传操作,生成新的进化个体,转B2;
B7:保存杀死变异分支的测试用例和被杀死的变异分支;转Step8;
B8:生成的测试集;
其中为的适应值函数,表示为:
其中,d是一个小常数,它的作用确保括号中的值大于0,当且仅当能杀死
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于徐州工程学院,未经徐州工程学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110028395.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种法兰连接螺栓极限强度的校核方法
- 下一篇:一种康复治疗系统





