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

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

【技术实现步骤摘要】

本专利技术涉及计算机软件测试领域,设计了一种基于统计分析技术的自动生成可执行基础路径的新进化方法。该方法区别于原有方法的特色在于,生成的测试路径均为可执行的满足线性无关性的独立路径,即可执行的基础路径。
技术介绍
软件测试是软件生命周期中重要的组成部分,结构测试是软件测试的主要方法,路径测试又是结构测试中最有效的覆盖准则,其需要执行被测程序的测试路径。因此,自动生成测试路径是软件测试的关键任务,是简化软件测试过程的有效方法,能够降低软件测试成本,提高测试效率。基础路径测试是结构测试中最有效的测试标准之一,其能够检测被测程序中65%的错误,而且各种结构测试数据生成问题都是针对基础路径测试。另外,基础路径集中不包含的测试路径,都能由基础路径的线性关系表示。因此,自动生成基础路径对软件测试的研究具有重要意义。基于搜索的优化技术,如模拟退火算法、爬山算法、粒子群算法、禁忌搜索算法和遗传算法等已经成功应用于软件测试中。TraceN.等提出模拟退火算法生成路径覆盖测试数据方法。DeepakGarg等提出爬山算法生成基础路径测试数据方法。YaHuiJia等和ShujuanJiang等提出粒子群优化算法生成测试数据方法。DiazE.等提出基于禁忌搜索算法的软件结构测试方法。遗传算法在回归测试、变异测试、并行测试等问题中均有较好的应用。吴川等和杨波等研究遗传算法在回归测试中的应用,Chang-aiSun等、PedroRealesMateo等、党向盈等、张功杰等和巩敦卫等研究遗传算法在变异测试中的应用,G.H.Hwang等和田甜等研究遗传算法在并行程序测试中的应用,均取得了较好的成果。在测试数据的自动生成问题中,遗传算法的应用最为广泛,M.A.Ahmed等和D.Gonga等提出应用遗传算法生成多路径测试数据的方法,P.M.S.Bueno等、MohebR.Girgis等、AhmedS.Ghiduk等提出应用遗传算法有效的生成测试数据方法。由此可见,遗传算法已经成熟的应用于软件测试领域。到目前为止,对遗传算法的关注还主要集中在测试数据的进化生成问题,而软件测试的主要方法为结构测试。因此,自动生成测试路径对于软件测试至关重要。J.Poole研究了依赖控制流图的深度优先搜索方法生成基础路径,此方法没有考虑循环结构,而且忽略了如何在候选节点集中选择构建基础路径的最优节点,主要缺陷在于该方法采用的是不可靠的非结构化代码,基础路径集的数目不再等于控制流图的复杂性度量。Z.Guangmei提出了一种自动生成基础路径集的方法,该方法同样采用控制流图的深度优先搜索技术,为了避免算法的无限循环和减少搜索过程,该方法考虑被测程序多入度节点做为末端节点的子路经,在构造基础路径集过程中,记录包含循环的子路经,但此方法没有考虑不可执行路径。J.Yan等提出了生成可执行路径的有限集F方法,F满足基础路径覆盖准则,但是该方法在检测可执行路径时需要执行所有路径,非常耗时。Z.Zhonglin等和D.Qingfeng等利用圈复杂度生成线性独立路径集,由于决策节点包含的变量具有数据依赖性,以致生成的基础路径集多数为不可执行路径,为此结合依赖关系的基线方法避免选择不可执行路径,但是该方法没有处理程序中的循环结构。AhmedS.Ghiduk提出一种可变长度的遗传算法生成测试路径集,染色体的长度随着迭代次数的改变逐渐增加,以代表不同长度的路径,该方法生成的路径集包含所有的测试路径,其含有很多不可执行路径,为删除不可执行路径,该方法使用不可执行路径检测模型检测生成的全部测试路径,此过程非常耗时。为了解决上述方法的缺陷,本专利技术设计了一种基于统计分析的可执行基础路径进化生成方法,采用统计分析技术,判断DD-图中的互斥边,提出基于统计分析的可变长度遗传算法,判断染色体是否含有互斥边,生成可执行的测试路径,检验路径是否为独立路径,且满足与基础路径的线性无关性,进化生成可执行的基础路径集,可以应用于任何路径测试方法中,从而提高软件测试的有效性。
技术实现思路
本专利技术提出一种基于统计分析的可执行基础路径进化生成方法。首先,采用统计分析方法,检测被测程序条件语句的相关性,根据条件语句的相关性,确定DD-图中的互斥边,作为后续进化过程中判断不可执行路径的依据。其次,研究自动进化生成可执行的基础路径集技术,提出基于统计分析的可变长度遗传算法,染色体的长度随着迭代次数的改变逐渐增加,代表进化生成的测试路径,在进化过程中,判断染色体是否含有互斥边,若染色体含有互斥边,则其代表的路径为不可执行路径,这样的染色体不再参与进化,由此生成的测试路径均为可执行测试路径。最后,检验生成的测试路径是否为独立路径,如果生成的测试路径是独立路径,并且与基础路径线性无关,即其不能由已生成的基础路径线性表示,将其加入可执行的基础路径集,可以应用于任何路径测试方法中。本专利技术所要解决的技术问题:克服现有测试路径生成方法的不足,基于遗传算法提出一种有效的进化优化方法,使生成的路径均为可执行的测试路径,而且满足基础路径集的约束条件。本专利技术的技术解决方案:一种基于统计分析的可执行基础路径进化生成方法,其特征在于包含以下步骤。步骤1.统计分析模型的设计。采用统计分析方法,随机产生一组测试数据运行被测程序,统计不同条件语句谓词对应随机变量的取值情况,获得样本数据,利用最大似然估计方法,得到条件语句相关性对应的估计值,判断条件语句的相关性类型,确定DD-图中的互斥边,作为后续进化过程中判断可执行路径的依据。本专利技术建立分析模块的主要任务如下:任务1:读取被测程序,分类程序语句并将其格式化,构造程序控制流图;任务2:使用AhmedS.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中含有边的数量)。基于统计分析的可变长度遗传算法,判断染色体是否含有互斥边,若染色体含有互斥边,则其代表的测试路径为不可执行路径,这样的染色体不再参与进化。因此,生成的测试路径均为可执行的测试路径。由此可知,本专利技术在可执行路径生成模型中,设计了基于统计分析的可变长度遗传本文档来自技高网
...
基于统计分析的可执行基础路径进化生成方法

【技术保护点】
基于统计分析的可执行基础路径进化生成方法,其特征在于如下步骤:步骤1.1: 采用统计分析方法,应用统计分析模型检测被测程序条件语句相关性,根据条件语句的相关性类型,确定DD‑图中的互斥边,作为后续进化过程中判断可执行路径的依据;步骤1.2: 针对步骤1.1的采用统计分析方法确定的互斥边,提出了一种基于统计分析的可变长度遗传算法,应用可执行路径生成模型生成可执行的测试路径,该遗传算法在多目标进化优化的求解方法中可广泛应用;步骤1.3:使用步骤1.2的遗传算法生成可执行的测试路径,应用基础路径检测模型检验生成的测试路径是否为独立路径,如果生成的测试路径是独立路径,并且与已生成的基础路径线性无关,则将其加入可执行的基础路径集,可应用于任何路径测试方法中。

【技术特征摘要】
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:基于统计分析...

【专利技术属性】
技术研发人员:夏春艳张岩谢威肖楠磨然
申请(专利权)人:牡丹江师范学院
类型:发明
国别省市:黑龙江;23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1