基于统计分析的可执行基础路径进化生成方法.pdf

上传人:1****2 文档编号:1285605 上传时间:2018-04-12 格式:PDF 页数:17 大小:1.37MB
返回 下载 相关 举报
摘要
申请专利号:

CN201610971672.6

申请日:

2016.11.07

公开号:

CN106502908A

公开日:

2017.03.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 11/36申请日:20161107|||公开

IPC分类号:

G06F11/36; G06N3/12

主分类号:

G06F11/36

申请人:

牡丹江师范学院

发明人:

夏春艳; 张岩; 谢威; 肖楠; 磨然

地址:

157011 黑龙江省牡丹江市爱民区文化街19号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明公布了一种基于统计分析的可执行基础路径进化生成方法,目的是使生成的测试路径可应用于任何路径测试技术中,从而提高软件测试的效率。首先,采用统计分析方法设计分析模型,确定被测程序的控制流图、DD‑图和互斥边;然后,提出基于统计分析的可变长度遗传算法,使用本方法设计可执行路径生成模型和基础路径检测模型,进化生成可执行的基础路径。以往方法都是将生成测试路径和检测可执行路径分开研究,本发明设计将两部分内容用一种方法实现,进化生成的基础路径本身就是可执行路径,并且克服了控制流图中的循环问题,能很大程度的提高测试路径生成的效率。

权利要求书

1.基于统计分析的可执行基础路径进化生成方法,其特征在于如下步骤:
步骤1.1: 采用统计分析方法,应用统计分析模型检测被测程序条件语句相关性,根据
条件语句的相关性类型,确定DD-图中的互斥边,作为后续进化过程中判断可执行路径的依
据;
步骤1.2: 针对步骤1.1的采用统计分析方法确定的互斥边,提出了一种基于统计分析
的可变长度遗传算法,应用可执行路径生成模型生成可执行的测试路径,该遗传算法在多
目标进化优化的求解方法中可广泛应用;
步骤1.3:使用步骤1.2的遗传算法生成可执行的测试路径,应用基础路径检测模型检
验生成的测试路径是否为独立路径,如果生成的测试路径是独立路径,并且与已生成的基
础路径线性无关,则将其加入可执行的基础路径集,可应用于任何路径测试方法中。
2.权利要求1中步骤1.1所述的统计分析方法,其特征在于包含如下步骤:
步骤2.1:随机产生一组测试数据运行被测程序,统计不同条件语句谓词对应随机变量
的取值情况,获得样本数据,利用最大似然估计方法,得到条件语句相关性对应的估计值,
判定条件语句的相关性类型,设ni和nj是2个条件语句,则
若ni取真分支时nj必然取真分支,则称语句组(ni,nj)具有T-T相关性;
若ni取真分支时nj必然取假分支,则称语句组(ni,nj)具有T-F相关性;
若ni取假分支时nj必然取真分支,则称语句组(ni,nj)具有F-T相关性;
若ni取假分支时nj必然取假分支,则称语句组(ni,nj)具有F-F相关性;
步骤2.2:以条件语句的相关性类型判断DD-图中的互斥边,设条件语句ni的真分支所对
应的边为eiT,假分支所对应的边为eiF,则
若语句对(ni,nj)具有T-T相关性,则称(eiT→ejF)为其对应的互斥边;
若语句对(ni,nj)具有T-F相关性,则称(eiT→ejT)为其对应的互斥边;
若语句对(ni,nj)具有F-T相关性,则称(eiF→ejF)为其对应的互斥边;
若语句对(ni,nj)具有F-F相关性,则称(eiF→ejT)为其对应的互斥边。
3.权利要求1中步骤1.2所述的基于统计分析的可变长度遗传算法,其特征在于包含如
下步骤:
步骤3.1:基于统计分析的可变长度遗传算法与传统遗传算法相比,染色体的表示方法
和个体评价函数有所不同,并且增加了繁殖操作,算法描述如下:
初始化,
个体评价,
选择操作,
交叉操作,
变异操作,
繁殖操作,
算法终止,若不满足终止条件,则,转至第步;若满足终止条件,则输出当
前最优个体,算法结束;
步骤3.2:基于统计分析的可变长度遗传算法,用整型变量表示染色体,代表被测程序
DD-图中的边,染色体的长度依赖于基础路径的长度,随着迭代次数的改变逐渐增加,代表
进化生成的测试路径,染色体的表示方法如下:

步骤3.3:基于统计分析的可变长度遗传算法,设计适应度函数评价每个个体进化生成
测试路径的优劣程度,从而决定其遗传机会的大小,其取值依赖于DD-路径中相邻边的概
率,计算公式如下:


f(xi):表示染色体xi(i=1,…,PM)的适应度函数值;
d(xi):表示染色体xi相邻边的数量;
w(eij):表示染色体xi中边ej的权重;
L(xi):表示染色体xi的长度(即表示染色体xi中含有边的数量);
步骤3.4:基于统计分析的可变长度遗传算法,判断染色体是否含有互斥边,若染色体
含有互斥边,则其代表的测试路径为不可执行路径,这样的染色体不再参与进化,因此,生
成的测试路径均为可执行的测试路径。
4.权利要求1中步骤1.3所述的应用基础路径检测模型检测生成的可执行测试路径是
否为独立路径,并且是否满足与已有的基础路径的线性无关性,其特征在于包含如下步骤:
步骤4.1:检验生成的可执行测试路径是否为独立路径,独立路径要求至少有一条边在
控制流图的其他路径中没有出现过;满足与已有的基础路径的线性无关性,指的是独立路
径不能由已生成的基础路径进行线性表示,则将其加入基础路径集;
步骤4.2:基础路径集是由一组基础路径构成的集合,其需满足如下三个约束条件:
每一条基础路径必须是一条独立路径;
基础路径集中的所有基础路径必须覆盖控制流图的所有边;
不包含在基础路径集中的任何路径都能由基础路径集中的基础路径线性表示。
5.权利要求1所述的基于统计分析的可变长度遗传算法,其特征在于给出算法的实现
过程如下:
(1)搜索空间
搜索空间是所需解决问题的集合,在搜索空间中每个点代表一个可能的解决方案,本
方法设其搜索空间为D,则

由此可知,算法的输入域是被测程序DD-图中所有边的集合;
(2)个体编码
遗传算法的运算对象是表示个体的符号串,可以是二进制、数值、数组、列表、树或者其
他对象,编码主要依赖于解决的问题,本方法采用整型变量表示染色体,代表被测程序DD-
图中的边,染色体的长度依赖于基础路径的长度;
(3)初始种群
遗传算法是对群体进行的进化操作,需要准备表示起始搜索点的初始群体数据,本方
法初始种群中每个个体(即染色体)包含两条边,即被测程序DD-图中的入口边和出口边,种
群大小设置为PM,染色体的最小长度为2,染色体的最大长度等于DD-路径含有边的最多数
量;
(4)个体评价
遗传算法采用个体适应度评定每个个体的优劣程度,从而决定其遗传机会的大小,本
方法设计适应度函数评价进化生成路径的优劣,其取值依赖于DD-路径中相邻边的概率;
(5)选择运算
选择当前种群适应度较高的个体遗传到下一代种群,适应度较高的个体有更大的机会
遗传到下一代种群,本方法采用轮盘赌的方法,即与适应度成正比的概率确定各个个体遗
传到下一代种群的数量;
(6)交叉运算
交叉运算是遗传算法中生成新个体的主要运算过程,其以一定概率交换两个个体的部
分基因座,本方法采用单点交叉的方法,即在染色体中确定交叉位置,然后以某一概率在该
点交换两个配对染色体的部分基因座;
(7)变异运算
变异运算是对染色体某一基因座上的基因以一较小的概率进行改变,也是产生新个体
的一种主要运算,本方法采用基本位变异的方法,即在染色体中确定基因变异位置,然后以
某一概率对该点的基因进行变异;
(8)繁殖运算
繁殖运算主要是为了实现扩展染色体使其代表完整的路径,本方法采用在染色体的某
一基因座位置后插入新的基因,实现染色体的扩展;
(9)检验运算
检验运算主要是判断生成的测试路径(即适应度函数值为1的染色体)是否为基础路
径,如果生成的测试路径为独立路径,且满足与基础路径线性无关,则将其加入基础路径
集;
(10)算法终止
在遗传算法中,种群进化到生成的一组测试路径满足基础路径集的约束条件或者达到
最大迭代次数时,算法终止。

说明书

基于统计分析的可执行基础路径进化生成方法

技术领域

本发明涉及计算机软件测试领域,设计了一种基于统计分析技术的自动生成可执
行基础路径的新进化方法。该方法区别于原有方法的特色在于,生成的测试路径均为可执
行的满足线性无关性的独立路径,即可执行的基础路径。

背景技术

软件测试是软件生命周期中重要的组成部分,结构测试是软件测试的主要方法,
路径测试又是结构测试中最有效的覆盖准则,其需要执行被测程序的测试路径。因此,自动
生成测试路径是软件测试的关键任务,是简化软件测试过程的有效方法,能够降低软件测
试成本,提高测试效率。

基础路径测试是结构测试中最有效的测试标准之一,其能够检测被测程序中65%
的错误,而且各种结构测试数据生成问题都是针对基础路径测试。另外,基础路径集中不包
含的测试路径,都能由基础路径的线性关系表示。因此,自动生成基础路径对软件测试的研
究具有重要意义。

基于搜索的优化技术,如模拟退火算法、爬山算法、粒子群算法、禁忌搜索算法和
遗传算法等已经成功应用于软件测试中。Trace N.等提出模拟退火算法生成路径覆盖测试
数据方法。Deepak Garg等提出爬山算法生成基础路径测试数据方法。YaHui Jia等和
Shujuan Jiang等提出粒子群优化算法生成测试数据方法。Diaz E.等提出基于禁忌搜索算
法的软件结构测试方法。遗传算法在回归测试、变异测试、并行测试等问题中均有较好的应
用。吴川等和杨波等研究遗传算法在回归测试中的应用,Chang-ai Sun等、Pedro Reales
Mateo等、党向盈等、张功杰等和巩敦卫等研究遗传算法在变异测试中的应用,G.H. Hwang
等和田甜等研究遗传算法在并行程序测试中的应用,均取得了较好的成果。在测试数据的
自动生成问题中,遗传算法的应用最为广泛,M.A. Ahmed等和D. Gonga等提出应用遗传算
法生成多路径测试数据的方法,P.M.S. Bueno等、 Moheb R. Girgis等、Ahmed S. Ghiduk
等提出应用遗传算法有效的生成测试数据方法。

由此可见,遗传算法已经成熟的应用于软件测试领域。到目前为止,对遗传算法的
关注还主要集中在测试数据的进化生成问题,而软件测试的主要方法为结构测试。因此,自
动生成测试路径对于软件测试至关重要。J. Poole研究了依赖控制流图的深度优先搜索方
法生成基础路径,此方法没有考虑循环结构,而且忽略了如何在候选节点集中选择构建基
础路径的最优节点,主要缺陷在于该方法采用的是不可靠的非结构化代码,基础路径集的
数目不再等于控制流图的复杂性度量。Z. Guangmei提出了一种自动生成基础路径集的方
法,该方法同样采用控制流图的深度优先搜索技术,为了避免算法的无限循环和减少搜索
过程,该方法考虑被测程序多入度节点做为末端节点的子路经,在构造基础路径集过程中,
记录包含循环的子路经,但此方法没有考虑不可执行路径。J. Yan等提出了生成可执行路
径的有限集F方法,F满足基础路径覆盖准则,但是该方法在检测可执行路径时需要执行所
有路径,非常耗时。Z. Zhonglin等和D. Qingfeng等利用圈复杂度生成线性独立路径集,由
于决策节点包含的变量具有数据依赖性,以致生成的基础路径集多数为不可执行路径,为
此结合依赖关系的基线方法避免选择不可执行路径,但是该方法没有处理程序中的循环结
构。Ahmed S. Ghiduk提出一种可变长度的遗传算法生成测试路径集,染色体的长度随着迭
代次数的改变逐渐增加,以代表不同长度的路径,该方法生成的路径集包含所有的测试路
径,其含有很多不可执行路径,为删除不可执行路径,该方法使用不可执行路径检测模型检
测生成的全部测试路径,此过程非常耗时。

为了解决上述方法的缺陷,本发明设计了一种基于统计分析的可执行基础路径进
化生成方法,采用统计分析技术,判断DD-图中的互斥边,提出基于统计分析的可变长度遗
传算法,判断染色体是否含有互斥边,生成可执行的测试路径,检验路径是否为独立路径,
且满足与基础路径的线性无关性,进化生成可执行的基础路径集,可以应用于任何路径测
试方法中,从而提高软件测试的有效性。

发明内容

本发明提出一种基于统计分析的可执行基础路径进化生成方法。首先,采用统计
分析方法,检测被测程序条件语句的相关性,根据条件语句的相关性,确定DD-图中的互斥
边,作为后续进化过程中判断不可执行路径的依据。其次,研究自动进化生成可执行的基础
路径集技术,提出基于统计分析的可变长度遗传算法,染色体的长度随着迭代次数的改变
逐渐增加,代表进化生成的测试路径,在进化过程中,判断染色体是否含有互斥边,若染色
体含有互斥边,则其代表的路径为不可执行路径,这样的染色体不再参与进化,由此生成的
测试路径均为可执行测试路径。最后,检验生成的测试路径是否为独立路径,如果生成的测
试路径是独立路径,并且与基础路径线性无关,即其不能由已生成的基础路径线性表示,将
其加入可执行的基础路径集,可以应用于任何路径测试方法中。

本发明所要解决的技术问题:克服现有测试路径生成方法的不足,基于遗传算法
提出一种有效的进化优化方法,使生成的路径均为可执行的测试路径,而且满足基础路径
集的约束条件。

本发明的技术解决方案:一种基于统计分析的可执行基础路径进化生成方法,其
特征在于包含以下步骤。

步骤1. 统计分析模型的设计。

采用统计分析方法,随机产生一组测试数据运行被测程序,统计不同条件语句谓
词对应随机变量的取值情况,获得样本数据,利用最大似然估计方法,得到条件语句相关性
对应的估计值,判断条件语句的相关性类型,确定DD-图中的互斥边,作为后续进化过程中
判断可执行路径的依据。

本发明建立分析模块的主要任务如下:

任务1:读取被测程序,分类程序语句并将其格式化,构造程序控制流图;

任务2:使用Ahmed S. Ghiduk等人所提简化算法,依据控制流图构造DD-图;

任务3:根据统计分析结果,判定DD-图中的互斥边;

任务4:通过控制流图、DD-图、互斥边以及边之间的依赖关系测试可执行路径生成模
块。

由此可知,本发明将数学统计分析方法应用到软件测试的分析模型中,使得分析
结果具有更强的准确性和科学性,这是本发明与已有研究成果的明显区别。

步骤2.可执行路径生成模型的设计。

本发明采用基于统计分析的可变长度遗传算法进化优化求解问题,设计可执行路
径生成模型,主要包括染色体的表示、适应值函数的设计和可执行测试路径的生成。

基于统计分析的可变长度遗传算法,用整型变量表示染色体,代表被测程序DD-图
中的边,染色体的长度依赖于基础路径的长度,随着迭代次数的改变逐渐增加,代表进化生
成的测试路径,表示方法如下:


基于统计分析的可变长度遗传算法,设计适应度函数评价每个个体进化生成测试路径
的优劣程度,从而决定其遗传机会的大小,其取值依赖于DD-路径中相邻边的概率,计算公
式如下:


f(xi):表示染色体xi(i=1,…,PM)的适应度函数值;

d(xi):表示染色体xi相邻边的数量;

w(eij):表示染色体xi中边ej的权重;

L(xi):表示染色体xi的长度(即表示染色体xi中含有边的数量)。

基于统计分析的可变长度遗传算法,判断染色体是否含有互斥边,若染色体含有
互斥边,则其代表的测试路径为不可执行路径,这样的染色体不再参与进化。因此,生成的
测试路径均为可执行的测试路径。

由此可知,本发明在可执行路径生成模型中,设计了基于统计分析的可变长度遗
传算法,进化过程中考虑互斥边的作用。因此,生成的路径均为可执行的测试路径,这是本
发明与已有研究成果的最大区别。

步骤3. 基础路径检测模型的设计。

本发明采用基础路径检测模型检验生成的测试路径是否为基础路径。首先,检测
生成的测试路径是否为独立路径,独立路径至少有一条边在其他路径中没有出现过。其次,
检验测试路径是否可以由基础路径集中的基础路径线性表示,不能由基础路径线性表示的
独立路径加入基础路径集;否则,生成的测试路径不能加入基础路径集。

基础路径集是由一组基础路径构成的集合,其需满足如下三个约束条件:

每一条基础路径必须是一条独立路径;

基础路径集中的所有基础路径必须覆盖控制流图的所有边;

不包含在基础路径集中的任何路径都能由基础路径集中的基础路径线性表示。

由此可知,本发明在基础路径检测模型中,判断可执行的测试路径是否满足基础
路径集的三个约束条件,保证了基础路径集的最简性和全面性,这是本发明与已有研究成
果的明显区别。

综上可知,本发明设计的基于统计分析的可执行基础路径进化生成方法生成的测
试路径可应用于任何路径测试方法中,从而提高软件测试的效率。

附图说明

图1是基于统计分析的可执行基础路径进化生成工具体系结构图。

图2是三角形分类程序的源代码。

图3是三角形分类程序的控制流图。

图4是三角形分类程序的DD-图。

具体实施方式

下面结合具体附图和实例对本发明基于统计分析的可执行基础路径进化生成方
法的实施方式进行详细说明。

本发明设计一种基于统计分析的可执行基础路径进化生成工具,其体系结构图如
图1所示,包含3个模块:统计分析模块、可执行路径生成模块和基础路径检测模块。

步骤1. 统计分析模型的设计。

统计分析模型的设计主要分为两个步骤,条件语句相关性的判定和互斥边的判
定。

1.1 条件语句相关性的判定。

采用统计分析方法,随机产生一组测试数据运行被测程序,统计不同条件语句谓
词对应的随机变量的取值情况,获得样本数据,利用最大似然估计方法,计算随机变量的估
计值,判定条件语句的相关性类型,主要方法为:设ni和nj是2个条件语句,则

若ni取真分支时nj必然取真分支,则称语句组(ni,nj)具有T-T相关性;

若ni取真分支时nj必然取假分支,则称语句组(ni,nj)具有T-F相关性;

若ni取假分支时nj必然取真分支,则称语句组(ni,nj)具有F-T相关性;

若ni取假分支时nj必然取假分支,则称语句组(ni,nj)具有F-F相关性。

1.2 互斥边的判定。

依据条件语句的相关性类型,判断DD-图中的互斥边,主要方法为:设条件语句ni
的真分支所对应的边为eiT,假分支所对应的边为eiF,则

若语句对(ni,nj)具有T-T相关性,则称(eiT→ejF)为其对应的互斥边;

若语句对(ni,nj)具有T-F相关性,则称(eiT→ejT)为其对应的互斥边;

若语句对(ni,nj)具有F-T相关性,则称(eiF→ejF)为其对应的互斥边;

若语句对(ni,nj)具有F-F相关性,则称(eiF→ejT)为其对应的互斥边。

步骤2.可执行路径生成模型的设计。

可执行路径生成模型的设计使用本发明提出的遗传算法生成一组可执行的测试
路径。初始化被测程序DD-图中的入口边和出口边,依据统计分析结果判定互斥边,其对应
的路径为不可执行路径,在进化过程中将其舍弃。通过遗传算法的繁殖运算对每一条路径
增加新边,直到得到一条完整路径为止。生成路径的过程中,考虑到互斥边对应的路径为不
可执行路径,因此,生成的路径均为可执行路径。主要方法如下。

2.1 搜索空间。

搜索空间是所需解决问题的集合,在搜索空间中每个点代表一个可能的解决方
案。在本发明方法中,设其搜索空间为D,则

(1)

由此可知,本发明方法的输入域是被测程序DD-图中所有边的集合。

2.2 个体编码。

遗传算法的运算对象是表示个体的符号串,可以是二进制、数值、数组、列表、树或
者其他对象,编码主要依赖于解决的问题。在本发明方法中,用整型变量表示染色体,代表
被测程序DD-图中的边,染色体的长度依赖于基础路径的长度,则染色体为

(2)。

2.3 初始种群。

遗传算法是对群体进行的进化操作,需要准备表示起始搜索点的初始群体数据。
在本发明方法中,初始种群中每个个体(即染色体)包含两条边,即被测程序DD-图中的入口
边和出口边,种群大小设置为PM。因此,染色体的最小长度为2,染色体的最大长度等于DD-
路径含有边的最多数量。

2.4 个体评价。

遗传算法采用个体适应度评定每个个体的优劣程度,从而决定其遗传机会的大
小。在本发明方法中,应用适应度函数评价进化生成路径的优劣,其取值依赖于DD-路径中
相邻边的概率,计算公式如下:

(3)

(4)

f(xi):表示染色体xi(i=1,…,PM)的适应度函数值;

d(xi):表示染色体xi相邻边的数量;

w(eij):表示染色体xi中边ej的权重;

L(xi):表示染色体xi的长度(即表示染色体xi中含有边的数量)。

2.5 选择运算。

选择当前种群适应度较高的个体遗传到下一代种群。一般情况,适应度较高的个
体有更大的机会遗传到下一代种群。在本发明方法中,采用轮盘赌的方法,即与适应度成正
比的概率确定各个个体遗传到下一代种群的数量。

2.6 交叉运算。

交叉运算是遗传算法中生成新个体的主要运算过程,其以一定概率交换两个个体
的部分基因座。在本发明方法中,采用单点交叉的方法,即在染色体中确定交叉位置,然后
以某一概率在该点交换两个配对染色体的部分基因座。

2.7 变异运算。

变异运算是对染色体某一基因座上的基因以一较小的概率进行改变,也是产生新
个体的一种主要运算。在本发明方法中,采用基本位变异的方法,即在染色体中确定基因变
异位置,然后以某一概率对该点的基因进行变异。

2.8 繁殖运算。

繁殖运算主要是为了实现扩展染色体使其代表完整的路径。在本发明方法中,采
用在染色体的某一基因座位置后插入新的基因,实现染色体的扩展。

步骤3. 基础路径检测模型的设计。

基础路径检测模块检测生成的可执行路径是否为基础路径。如果生成的可执行路
径为独立路径,并且满足与已有的基础路径的线性无关性,则将此生成路径加入基础路径
集。运行一次遗传算法可生成多条测试路径,重复迭代直到生成一组基础测试路径或者满
足终止条件。

3.1 检验运算。

检验运算,主要是判断生成的测试路径(即适应度函数值为1的染色体)是否为基
础路径。首先,检测生成的测试路径是否为独立路径,独立路径至少有一条边在其他路径中
没有出现过。其次,检验测试路径其是否可以由基础路径集中的基础路径线性表示,不能由
基础路径线性表示的独立路径加入基础路径集;否则,生成的测试路径不能加入基础路径
集。

3.2 算法终止。

在传统遗传算法中,种群进化到某个个体代表解决方案或者达到最大迭代次数
时,算法终止。在本发明方法中,生成的一组测试路径满足基础路径集的约束条件或者达到
最大迭代次数时,算法终止。需要说明的是,本发明方法满足的是多目标生成问题,一次进
化生成的是一组测试路径,即基础路径集。

3.3 测试实例。

本发明中,以三角形分类程序为例,介绍如何采用统计分析的进化生成方法自动
生成基础路径集的具体过程。三角形分类程序的源代码如图2所示,对应的控制流图如图3
所示,相应的DD-图如图4所示。

(1)相关性类型以及互斥边的判定。

采用统计分析模型判定条件语句的相关性,确定DD-图中的互斥边。具体方法如
下:

随机产生一组测试数据运行被测程序;

统计不同条件语句谓词对应随机变量的取值情况,获得样本数据;

利用最大似然估计方法,得到条件语句相关性对应的估计值,判定条件语句的相关
性类型;

根据条件语句的相关性类型,确定DD-图中的互斥边。

三角形分类程序中判定条件语句相关性参考了姚香娟博士论文“复杂软件测试数
据进化生成理论及应用”中的方法,但根据实际情况对其进行了修改。根据条件语句的相关
性类型,确定DD-图中的互斥边,如表1所示。

表1 三角形分类程序中条件语句相关性及互斥边

条件语句
相关性类型
互斥边
条件语句
相关性类型
互斥边
(11,13)
T→F
e9→e11
(4,8,11)
TF→F
e3,e8→e9
(2,4,6)
TT→F
e1,e3→e5
(6,8,11)
TF→F
e5,e8→e9
(2,8,11)
TF→F
e1,e8→e9
(2,4,8,13)
TTF→F
e1,e3,e8→e11
(4,6,8)
TF→T
e3,e6→e8
(4,6,8,13)
TTF→F
e3,e5,e8→e11

(2)初始种群的设置。

初始种群中每条染色体包含两条边,即被测程序DD-图中的入口边和出口边,种群
大小设置为PM。三角形分类程序中,假设初始种群含有8条染色体,如表2所示。


(3)个体评价函数。

三角形分类程序中,假设当前种群含有不同长度的一组染色体,x1=(0,1,13),x2=
(0,2,3,13),x3=(0,1,4,5,13),x4=(0,2,4,5,7,13);依据染色体中含有边的数量,计算L
(xi)(i=1,2,3,4),L(x1)=3,L(x2)=4,L(x3)=5,L(x4)=6;依据染色体的长度,计算染色体中边
的概率(即权重),w(e1j)=1/3(j=0,1,13),w(e2j)=1/4(j=0,2,3,13),w(e3j)=1/5(j=0,1,4,
5,13),w(e4j)=1/6(j=0,2,4,5,7,13)。依据染色体中相邻边的数量,计算d(xi)(i=1,2,3,
4),d(x1)=2,d(x2)=3,d(x3)=4,d(x4)=6。再根据公式(3)和(4),计算适应度函数值:f(x1)=2/
3,f(x2)=3/4,f(x3)=4/5,f(x4)=1。

由本组数据可知,染色体x4代表的路径p4={e0,e2,e4,e5,e7,e13}是最优路径,如果
此路径是独立路径,且与基础路径满足线性无关性,则把其加入基础路径集。

(4)选择运算。

三角形分类程序中,采用轮盘赌方法选择下一代种群,具体方法如下:

计算种群中所有个体的适应度函数值的和:

(5)

计算每个个体的相对适应度函数值:

(6)

相对适应度函数值的大小决定各个个体被遗传到下一代种群中的概率,每个概率值组
成一个区域,所有相对适应度函数值的和为1。

由此可见,适应度函数值越高的个体被选择的概率越大;反之,适应度函数值越低
的个体被选择的机会越小。

随机生成数r,。依据r落入的概率区域,确定各个个体被选中的次数m。

三角形分类程序中,假设当前种群具有如下8条染色体,依据相应的互斥边删除不
可执行路径对应的染色体。每条染色体的长度L=5,相邻边数量d=4,计算染色体的适应度函
数值以及相对适应度函数值。生成随机数r,确定染色体被选择的次数m。选择过程如表3所
示。


(5)交叉运算。

三角形分类程序中,采用单点交叉的方法交换两个配对染色体的部分基因座。操
作过程如下:

对当前种群中所有个体随机配对;

随机生成染色体中交叉点位置posc

设置交叉概率pc=0.8,随机生成数r,

如果r<pc,交换配对的两个染色体中交叉点(包含交叉点)后的基因座。

三角形分类程序中,对选择后的种群进行交叉操作,假设交叉点位置posc=4。交叉
过程如表4所示。


(6)变异运算。

三角形分类程序中,采用基本位变异的方法对基因进行变异。操作过程如下:

随机生成当前种群中染色体的变异点位置posm

设置变异概率pm=0.15,随机生成数r,

如果r<pm,将变异点所在的基因值(即边的真假分支)取反。

三角形分类程序中,对交叉后的种群进行变异操作,假设变异点位置posm=4。变异
过程如表5所示。


(7)繁殖运算。

三角形分类程序中,在染色体的某一基因座位置后插入新的基因,实现染色体的
扩展。操作过程如下:

随机生成当前种群中染色体的繁殖点位置posb

确定与繁殖点相邻的基因(即边),并随机选择一条边作为繁殖基因;

将繁殖基因插入繁殖点位置后,作为基因座posb+1对应的基因,增加染色体的长度。

三角形分类程序中,对变异后的种群进行繁殖操作,假设繁殖点位置posb=4。繁殖
过程如表6所示。


(8)检验运算。

三角形分类程序中,经计算得到染色体x1,x4,x5,x7的适应度函数值为1。其中,染
色体x1,x4,x7含有不相同的边,其代表的3条测试路径均为独立路径;染色体x5含有的边与
x1,x4,x7含有的边相同,即没含有新边,其代表的测试路径不是独立路径。另外,生成的3条
独立路径没有线性关系。因此,将生成的测试路径x1,x4,x7加入基础路径集。

(9)算法终止。

三角形分类程序中,基于统计分析的可变长度遗传算法不断迭代,共得到17条可
执行路径。其中,只有6条可执行路径满足基础路径集的约束条件,即其为独立路径且不具
有线性关系,如表7所示。在本例的DD-图中,圈复杂度C(G)=E-N+P=14-9+1=6。因此,该6条测
试路径为基础路径,构成基础路径集,算法终止。


综上所述,本发明设计了一种基于统计分析的可变长度遗传算法用于自动进化生
成可执行的基础测试路径,其可作为测试路径应用于任何路径测试技术。本发明方法采用
统计分析方法,判定DD-图中的互斥边,以此为依据判断不可执行路径。提出基于统计分析
的可变长度遗传方法,染色体的长度随着迭代次数的改变逐渐增加,代表进化生成的测试
路径。在遗传算法的选择运算中,判断染色体是否含有互斥边,若染色体含有互斥边,则其
代表的路径为不可执行路径,将其舍弃,由此生成的路径均为可执行测试路径。检验生成的
测试路径是否为基础路径,如果生成的测试路径是独立路径,并且与基础路径满足线性无
关性,将其加入可执行的基础路径集,可以应用于任何路径测试方法中。同时,该方法可服
了控制流图中的循环问题。通过实例研究评估所提方法的可行性和有效的。

基于统计分析的可执行基础路径进化生成方法.pdf_第1页
第1页 / 共17页
基于统计分析的可执行基础路径进化生成方法.pdf_第2页
第2页 / 共17页
基于统计分析的可执行基础路径进化生成方法.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《基于统计分析的可执行基础路径进化生成方法.pdf》由会员分享,可在线阅读,更多相关《基于统计分析的可执行基础路径进化生成方法.pdf(17页珍藏版)》请在专利查询网上搜索。

本发明公布了一种基于统计分析的可执行基础路径进化生成方法,目的是使生成的测试路径可应用于任何路径测试技术中,从而提高软件测试的效率。首先,采用统计分析方法设计分析模型,确定被测程序的控制流图、DD图和互斥边;然后,提出基于统计分析的可变长度遗传算法,使用本方法设计可执行路径生成模型和基础路径检测模型,进化生成可执行的基础路径。以往方法都是将生成测试路径和检测可执行路径分开研究,本发明设计将两部分内。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1