一种基于遗传算法的测试用例优化方法技术

技术编号:9718667 阅读:115 留言:0更新日期:2014-02-27 05:21
本发明专利技术公开了一种基于遗传算法的测试用例优化方法,其特征在于:采用遗传算法所存在的思想,通过优化选择测试用例,用最小的代价达到最大的覆盖率,找到测试用例选取的有效解决策略,该方法主要包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。现有的测试用例大多繁琐且测试效率低下,耗费大量的人力物力,考虑到现有状况,提出此方法针对被测软件进行白盒测试,采用遗传算法,根据程序的结构及测试历史信息,计算每个测试用例的适应度,进行用例选择,可以有效的选取必要的测试用例,提高测试效率,优化测试效果。

【技术实现步骤摘要】

本专利技术属于计算机软件测试
,涉及测试过程中选取测试用例集的技术以及遗传算法技术,用于提高测试的效率,并有效利用测试用例,是。技术背景随着计算机技术和软件技术的迅速发展,软件质量的可靠性变得越来越重要,软件测试作为一种提高软件质量的可靠方式,以最少的人力、物力,尽快找出软件中潜在的各种缺陷,通过修正这些缺陷,提高软件产品质量,尽量减少软件产品发布后由潜在的软件缺陷带来的可能的商业风险。其次,通过对测试结果的分析整理,总结开发规则,并为软件可靠性分析提供依据。测试用例是软件测试过程中必不可少的关键因素,目前,针对于测试用例的选取方式,存在着很多不同的方法,为此在保证测试质量的基础上,本文提出了来提高测试效率。遗传算法是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即O和I的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。
技术实现思路
本专利技术要解决的技术问题是:提供。本专利技术所采用的技术方案为: ,采用遗传算法所存在的思想,通过优化选择测试用例,用最小的代价达到最大的覆盖率,找到测试用例选取的有效解决策略,该方法主要包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。所述编码策略和适应度函数以及测试用例群体选择,其重点在于,编码是遗传算法的基础表现,遗传算法不能直接处理问题空间的参数,必须把它们转换成遗传空间的由基因按一定结构组成的染色体或个体。这一转换操作就叫做编码,也可以称作(问题的)表示(representation);进化论中的适应度,是表示某一个体对环境的适应能力,也表示该个体繁殖后代的能力。遗传算法的适应度函数也叫评价函数,是用来判断群体中的个体的优劣程度的指标,它是根据所求问题的目标函数来进行评估的。对于测试选择问题,我们可以把一个测试用例的信息从测试历史信息中获取,从测试历史信息中我们可以发现哪些用例执行过,用O,I的编码形式来进行描述,因此可以将历史信息中的测试用例看成每一个基因编码,如果一个程序有η个模块,则一个测试用例的编码可以表现为Qi=[ql,q2,.....qn], q j e {0, I},如果qj=l,说明用例执行了程序块aj,否则用例没有执行程序块。测试用例的使用度与发现程序的缺陷数以及覆盖度有关,其计算公式可以表现为:F(ti) =测试覆盖度/总体测试条目。而对于初始用例群体选择则采用随机策略。所述遗传算法策略是一个选择操作,交叉操作,变异操作的过程,通过选择基于适应度的测试用例,保留适应度高的测试用例,利用单点交叉法,进行交叉策略,使两个测试用例个体在结构位置相同处进行互换,生成新的测试用例个体,交叉之后进行的变异,采用二进制变异算法,实现基因码的小概率翻转来达到变异的目的。所述测试用例生成及优化过程,表现为: 1)通过修改后的程序代码T'对原程序代码T进行程序分析,确认T'相对于T所作出的修改; 2)应用遗传算法从原测试用例P中选取与程序修改相关的测试用例P'记录其对程序T'进行测试的信息; 3)确认测试信息覆盖度,如覆盖度不满足要求,追加测试; 4)应用追加后测试用例集,对T'再次进一步进行测试,得出优化后的测试用例。本专利技术的有益效果为: 现有的测试用例大多繁琐且测试效率低下,耗费大量的人力物力,考虑到现有状况,提出此方法针对被测软件进行白盒测试,采用遗传算法,根据程序的结构及测试历史信息,计算每个测试用例的适应度,进行用例选择,可以有效的选取必要的测试用例,提高测试效率,优化测试效果。【附图说明】图1为测试用例编码图; 图2为基于遗传算法的测试用例选取过程图。【具体实施方式】下面参照附图,结合实施例对本专利技术进行说明: 本专利技术实施例中主要包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。(I)对于一个程序T,我们选取其做出修改后的程序T,,对于初始用例,我们对其进行编码如图1所示,每一行对应一个个体,测试的覆盖度用于计算每个个体的适应度; (2)利用遗传算法从原测试用例P中选取与程序修改相关的测试用例P',其中选择过程采用轮盘赌的选择策略,然后利用交叉算法在两个个体的同一位置进行交叉重组,形成两个新个体,交叉过后采用二进制变异算法,实现基因码的小概率翻转来达到变异的目的,采用I/基因遗传因子个数作为变异概率。选取后的P对T'进行测试,记录测试信息; (3)确认测试的覆盖度,如不满足覆盖要求,对P'追加测试; (4)追加后的测试用例集,对T'再次进行测试,得出优化后的测试用例,整个过程如图2所示。本文档来自技高网...

【技术保护点】
一种基于遗传算法的测试用例优化方法,其特征在于:采用遗传算法所存在的思想,通过优化选择测试用例,用小的代价达到大的覆盖率,找到测试用例选取的有效解决策略,该方法包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。

【技术特征摘要】
1.一种基于遗传算法的测试用例优化方法,其特征在于:采用遗传算法所存在的思想,通过优化选择测试用例,用小的代价达到大的覆盖率,找到测试用例选取的有效解决策略,该方法包括:编码策略和适应度函数以及测试用例群体选择,遗传算法策略,测试用例生成及优化过程。2.根据权利要求1所述的一种基于遗传算法的测试用例优化方法,其特征在于:所述编码策略和适应度函数以及测试用例群体选择,其重点在于,编码是遗传算法的基础表现,对于测试选择问题,把一个测试用例的信息从测试历史信息中获取,将历史信息中的测试用例看成每一个基因编码,如果一个程序有η个模块,则一个测试用例的编码可以表现为Qi=[ql,q2,.....qn],qj e {O, I},如果qj=l,说明用例执行了程序块aj,否则用例没有执行程序块。3.根据权利要求2所述的一种基于遗传算法的测试用例优化方法,其特征在于:测试用例的使用度与发现程序的缺陷数以及覆盖度有关,其计算公式表现为:F(ti) =测试覆盖度/总体测试条目。4.根据权利要求2所...

【专利技术属性】
技术研发人员:刘晶侯德龙黄敏
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1