[发明专利]一种基于概率统计的软件测试基本路径进化生成方法有效
申请号: | 202010127165.0 | 申请日: | 2020-02-28 |
公开(公告)号: | CN111338957B | 公开(公告)日: | 2023-03-31 |
发明(设计)人: | 夏春艳;李玉莹;张岩;许金;乔力;郭冰 | 申请(专利权)人: | 牡丹江师范学院;南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/126;G06N7/01 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 157012 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 概率 统计 软件 测试 基本 路径 进化 生成 方法 | ||
1.基于概率统计的软件测试基本路径进化生成方法,其特征在于,针对被测程序PG,利用条件概率关系和最大似然估计法度量插装新生成的被测程序PG_2中条件语句间的相关性类型,进而判定PG_2中的互斥边关系,生成互斥边关系集合set_execlusion_edge_PG_2,以此作为可行路径的识别依据;在此基础上,采用遗传算法自动生成可行路径集合set_executable_basis_path,首先,初始化种群数据;其次,计算个体的适应度函数值,提取适应度函数值为1的个体,存入可行路径集合set_executable_path;然后,判断进化个体是否含有互斥边,对不含有互斥边的进化个体进行选择、交叉、变异和繁殖操作,重复上述过程,直到达到最大迭代次数或者生成所有的可行基本路径为止;最后,检验进化生成的可行路径是否为基本路径,满足线性无关的独立路径为可行的基本路径,最终输出可行的基本路径集合set_executable_basis_path;该方法包括如下步骤:
1)概率统计方法判定互斥边,首先,输入被测程序PG,将循环语句转化为条件语句,生成新的被测程序PG_1;其次,读取PG_1,构造PG_1的控制流图,并对线性串行的部分进行精简压缩,提取PG_1的执行分支,构建PG_1的DD-图;再次,确定DD-图中要考察的条件语句,定义对应的随机变量X和Y,插装生成新的被测程序PG_2;然后,随机生成测试数据运行PG_2,获得X和Y的样本数据集合,根据条件概率关系,构造X和Y的统计量q1和q2,利用最大似然方法估计统计量的函数值;最后,依据统计量的估计值度量条件语句的相关性类型,进而判定PG_2中的互斥边关系,输出PG_2的互斥边关系集合set_execlusion_edge_PG_2;
2)遗传算法生成基本路径,第一,初始化种群,种群初始数据是由PG_2的DD-图中的入口边和出口边构成,在进化过程中染色体的长度是可变的,依赖于其代表的生成路径的长度,种群个体用整型变量表示,采用十进制的编码方式代表进化生成的路径;
第二,个体评价,适应度函数用来评价个体的优劣程度,进化生成的个体代表被测程序的一条路径,对应DD-图中的边,当所有的边均相邻时,表示生成的路径为一条可穿越被测程序的完整路径;本发明设计适应度函数的依据是进化个体中所有的边均为相邻边时,其代表的生成路径为可行的基本路径;计算方法是根据个体的长度计算每条边的权重,所有相邻的边的权重之和为适应度函数值;当生成路径包含的所有的边均为相邻边时,适应度函数达到最大值为1,对应的个体表示一条从入口边到出口边的完整路径,计算公式为:
其中,fit(xi)表示个体xi(i=1,2,…,m)的适应度函数值,number(xi)表示xi相邻边的数量,weight(ej)表示xi的边ej的权重,L(xi)表示xi的长度;
若适应度函数值不为1,并且没有达到最大迭代次数,则判断进化个体是否含有互斥边,含有互斥边的个体代表的是不可行路径,在进化过程中将其删除,重复上述过程,直到种群数据完成互斥边的遍历;若适应度函数值为1,则个体代表的进化路径为生成的可行路径,将其存入可行的路径集合set_executable_path;
第三,选择、交叉、变异和繁殖,若种群数据完成互斥边的遍历,进行遗传算法的选择、交叉、变异和繁殖操作;选择操作,采用轮盘赌的方法按照适应度函数值选择个体遗传到下一代种群;交叉操作,采用单点交叉的方法交换两个配对个体的部分基因座;变异操作,采用基因位变异的方法对个体某一基因座上的基因依据概率进行改变;繁殖操作,主要是为了实现扩展个体使其代表完整的路径,采用在个体的某一基因座位置后插入新的基因,实现个体的扩展,操作过程如下:①随机生成当前种群中个体的繁殖点位置posb;②确定与繁殖点相邻的基因,并随机选择一条边作为繁殖基因;③将繁殖基因插入繁殖点位置后,作为基因座posb+1对应的基因,增加个体的长度;重复遗传算法的上述进化过程,直到个体的适应度函数为1或者达到最大迭代次数为止;
第四,检验操作,若个体的适应度函数值为1,即生成可行的路径后,需要检验生成的可行路径是否为基本路径;首先,判断生成的路径是否为独立路径,独立路径至少要有一条边在已知独立路径中没有出现过;其次,判断生成的独立路径是否可以由基本路径集中已生成的路径线性表示,不能由已生成的基本路径线性表示的路径为新生成的基本路径;若生成的可行路径是基本路径,将其存入可行的基本路径集合;
第五,算法终止条件,当达到最大迭代次数或者所有的可行基本路径生成完成时,输出可行基本路径集合,算法终止。
2.根据权利要求1中所述的基于概率统计的软件测试基本路径进化生成方法,其特征在于,在步骤1)中,概率统计方法判定互斥边;输入被测程序PG,分析PG中所有语句,将其分为顺序语句、条件语句和循环语句;然后,将循环语句转化为条件语句,只考虑循环体被执行一次的情况,循环体执行多次时,将其展开成多个条件并列,进而生成新的被测程序PG_1;读取PG_1,构造PG_1的控制流图;对控制流图中线性串行的部分进行精简压缩,提取PG_1的执行分支,构建PG_1的DD-图;确定DD-图中要考察的条件语句ni和nj,定义对应的随机变量X和Y,X和Y是2个服从(0,1)分布的随机变量,插装生成新的被测程序PG_2;随机生成测试数据运行PG_2,获得X和Y的样本数据集合;根据条件概率关系,构造X和Y的统计量q1和q2,利用最大似然方法估计统计量的函数值和/
依据和/度量ni和nj的相关性类型;由条件概率关系以及条件语句间的相关性类型可知,当/时,(ni,nj)具有T-T相关性;当/时,(ni,nj)具有T-F相关性;当/时,(ni,nj)具有F-T相关性;当/时,(ni,nj)具有F-F相关性;
根据条件语句间的相关性类型,定义被测程序中的互斥边关系;将条件语句ni的真分支所对应的边记为假分支所对应的边记为/则互斥边的定义如下:①若(ni,nj)具有T-T相关性,则/和/具有互斥边关系,记为/②若(ni,nj)具有T-F相关性,则/和/具有互斥边关系,记为/③若(ni,nj)具有F-T相关性,则/和/具有互斥边关系,记为④若(ni,nj)具有F-F相关性,则/和/具有互斥边关系,记为/
根据条件语句间的相关性类型和互斥边的关系,判定被测程序中的互斥边关系,输出被测程序的互斥边关系集合set_execlusion_edge_PG_2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于牡丹江师范学院;南京大学,未经牡丹江师范学院;南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010127165.0/1.html,转载请声明来源钻瓜专利网。