IGA算法的构件化软件测试用例生成研究

2017-03-23 20:32林振文
科技创新与应用 2017年6期

林振文

摘 要:通过对现有的构件化测试用例进行分析,探究了IGA算法在构件化软件测试中的应用,提出了基于MTCGCBS软件测试用例生成模型,将抗原作为函数目标对算法进行优化,将抗体作为解决问题的关键,通过与其他算法进行比较,IGA算法在软件测试用例生成效率明显高于其他算法,更能提高软件的测试效率。

关键词:IGA算法;构件化软件;测试用例

随着软件开发的质量要求越来越高,对软件的算法要求提出了更高的要求,基于构件的软件工程开发技术,能为高效的开发软件提供了保证,但是基于构件技术开发的软件,如何有效的对其进行测试,成为软件开发人员需要解决的难题。如何有效的对软件进行测试,采用快速高效的软件测试方法对测试用例进行优化,提高软件测试的工作效率。遗传算法采用多点搜索与交叉操作技术,全局搜索能力比较强大,但是对空间问题的搜索能力不是很强,在测试的过程中还存在一系列的问题。本文提出了采用免疫遗传算法IGA对软件的测试功能进行优化,将抗原作为函数目标对算法进行优化,将抗体作为解决问题的关键,并将抗体与抗原之间的亲和力作为解决问题的联合强度,对优化函数的算法具有独特的优势和高效性,可以大大的对测试用例进行优化,进而提高软件测试工作效率。

1 基于IGA的软件测试用例生成模型

在软件的测试用例中,我们采用构件化软件测试用例生成模型(MTCGCBS)对软件进行测试,改变软件测试的方法,并将IGA算法应用于该测试模型中,每一个构件软件的构件都有一定的规约文档,在对文档进行规划的过程中,需要要求的设置测试软件的前置条件,才能使用随机的算法对生成的构件进行测试,然后采用测试的数据进行编码形成测试的初始种群,接着采用IGA对该初始对根构件规约文档进行分析得到根构件的前置条件,并获取相应的初始测试数据,其次根据初始数据的编码,得到软件测试数据的初始种群;然后利用IGA算法优化初始种群,产生高效率的测试用例。根据构件的规约文档提取的初始测试数据,构件软件测试的模型,就可以利用IGA算法对生成的软件测试进行优化,具体流程如下图1所示。

采用构件规约文档生成用例测试的过程,并运用IGA算法可以对初始测试数据进行优化。运用IGA算法的适度函数与被测试的用例进行交互,通过IGA算法计算后,可以有效的得到适应度函数的值,根据适度函数的返回值,可以判断测试的效率,如果返回值越高,说明IGA的优化效率就越好,测试的效率越高。

2 IGA算法分析

2.1 IGA算法

免疫遗传算法与遗传算法相似,采用一系列的选择、交叉和变异等操作,数据的产生具有一定的随机性,在测试的过程中,往往会出现算法退化的现象,因此,IGA算法采用全局收敛算法与多点搜索技术与交叉技术,保证对群体进化的促进作用。但是免疫遗传算法在遗传算法的基础添加了免疫算子(该过程包括接种疫苗和免疫两个过程),采用信息抑制的方法控制信息退化,以防止算法的种群退化,提高算法的测试效率。因此,采用遗传算法作为测试用例的基础,然后在遗传算法上加入免疫算子,形成免疫遗传算法。

在确定了IMG算法的变化范围,根据对IGA算法的定义,并依据上述图1中IGA在MTCGCBS模型中的应用,在初始种群中抽取疫苗算子,并对测试的数据划分种群,采用适应度函数技进行计算,再经过交叉、变异、接种疫苗等过程,并将优化的最好个体送给相邻处理器,淘汰掉适应度较差的个体,IGA的算法流程,如图2所示:

2.2 IGA的算法收敛

假设采用IGA算法的初始种群的规模为M,在确定种群的大小之后,运用动态变长的二进制编码对种群中的所有个体进行编码,根据数据种群的变化规则,采用全局搜索和交叉算法,对种群进行优化,其中交叉操作的交叉点的选取需要根据适应度函数变化,以保证算法的覆盖范围,同时也是通过自适应的动态交叉率P0的操作而得到算法的初始数据,变异操作的过程通过收敛计算,剔除算法中的不良基因,对每个种群数据的基因位优化,并替代上一代的因子以种群的自适应的动态概率Pn相互独立进行变异,并与免疫算子结合在一起,形成一个优化的个体。IGA算法的状态转移情况可用随机过程对其进行描述,具体描述如下:

通过对初始数据群体进行一系列的自适应交叉、自适应变异操作,并对数据进行接种疫苗,然后由种群进行免疫选择,在经过数据优化后形成一个完整的过程,即从AK到DK形成一个完整的马尔科夫链,实现对初始种群的优化。

3 结束语

通过对传统的遗传算法进行分析,提出一种基于IGA算法的构件化软件测试用例生成模型,采用接种免疫疫苗的方法对个体进行优化,对该模型的详细功能进行研究,使用IGA算法的效率远高于遗传算法,能够提高构件化软件测试用例在软件测试过程中的测试效率,通过对比也能够说明该算法的效率高于传统的遗传算法和随机算法,对软件的测试效果也十分有效,同時也为构件化测试的软件的发展提供了支持。

参考文献

[1]汪浩,谢军凯,高仲仪.遗传算法及其在软件测试数据生成中的应用研究[J].计算机工程与应用,2012(12).

[2]单锦辉,土戟,马晓冬,等.面向路径的测试数据自动生成工具及其图形界面的Tcl/Tk设计[J].计算机工程与应用,2013(12).

[3]聂长海,徐宝文.一种最小测试用例集生成方法[J].计算机学报,2013(12).