《IGA算法的构件化软件测试用例生成研究》由会员分享,可在线阅读,更多相关《IGA算法的构件化软件测试用例生成研究(5页珍藏版)》请在金锄头文库上搜索。
1、IGA 算法的构件化软件测试用例生成研究摘 要:通过对现有的构件化测试用例进行分析,探究了 IGA 算法在构件化软件测试中的应用,提出了基于MTCGCBS 软件测试用例生成模型,将抗原作为函数目标对算法进行优化,将抗体作为解决问题的关键,通过与其他算法进行比较,IGA 算法在软件测试用例生成效率明显高于其他算法,更能提高软件的测试效率。 关键词:IGA 算法;构件化软件;测试用例 随着软件开发的质量要求越来越高,对软件的算法要求提出了更高的要求,基于构件的软件工程开发技术,能为高效的开发软件提供了保证,但是基于构件技术开发的软件,如何有效的对其进行测试,成为软件开发人员需要解决的难题。如何有效
2、的对软件进行测试,采用快速高效的软件测试方法对测试用例进行优化,提高软件测试的工作效率。遗传算法采用多点搜索与交叉操作技术,全局搜索能力比较强大,但是对空间问题的搜索能力不是很强,在测试的过程中还存在一系列的问题。本文提出了采用免疫遗传算法 IGA 对软件的测试功能进行优化,将抗原作为函数目标对算法进行优化,将抗体作为解决问题的关键,并将抗体与抗原之间的亲和力作为解决问题的联合强度,对优化函数的算法具有独特的优势和高效性,可以大大的对测试用例进行优化,进而提高软件测试工作效率。 1 基于 IGA 的软件测试用例生成模型 在软件的测试用例中,我们采用构件化软件测试用例生成模型(MTCGCBS)对
3、软件进行测试,改变软件测试的方法,并将 IGA 算法应用于该测试模型中,每一个构件软件的构件都有一定的规约文档,在对文档进行规划的过程中,需要要求的设置测试软件的前置条件,才能使用随机的算法对生成的构件进行测试,然后采用测试的数据进行编码形成测试的初始种群,接着采用 IGA 对该初始对根构件规约文档进行分析得到根构件的前置条件,并获取相应的初始测试数据,其次根据初始数据的编码,得到软件测试数据的初始种群;然后利用 IGA 算法优化初始种群,产生高效率的测试用例。根据构件的规约文档提取的初始测试数据,构件软件测试的模型,就可以利用 IGA 算法对生成的软件测试进行优化,具体流程如下图 1 所示。
4、 采用构件规约文档生成用例测试的过程,并运用 IGA算法可以对初始测试数据进行优化。运用 IGA 算法的适度函数与被测试的用例进行交互,通过 IGA 算法计算后,可以有效的得到适应度函数的值,根据适度函数的返回值,可以判断测试的效率,如果返回值越高,说明 IGA 的优化效率就越好,测试的效率越高。 2 IGA 算法分析 2.1 IGA 算法 免疫遗传算法与遗传算法相似,采用一系列的选择、交叉和变异等操作,数据的产生具有一定的随机性,在测试的过程中,往往会出现算法退化的现象,因此,IGA 算法采用全局收敛算法与多点搜索技术与交叉技术,保证对群体进化的促进作用。但是免疫遗传算法在遗传算法的基础添加
5、了免疫算子(该过程包括接种疫苗和免疫两个过程) ,采用信息抑制的方法控制信息退化,以防止算法的种群退化,提高算法的测试效率。因此,采用遗传算法作为测试用例的基础,然后在遗传算法上加入免疫算子,形成免疫遗传算法。 在确定了 IMG 算法的变化范围,根据对 IGA 算法的定义,并依据上述图 1 中 IGA 在 MTCGCBS 模型中的应用,在初始种群中抽取疫苗算子,并对测试的数据划分种群,采用适应度函数技进行计算,再经过交叉、变异、接种疫苗等过程,并将优化的最好个体送给相邻处理器,淘汰掉适应度较差的个体,IGA 的算法流程,如图 2 所示: 2.2 IGA 的算法收敛 假设采用 IGA 算法的初始
6、种群的规模为 M,在确定种群的大小之后,运用动态变长的二进制编码对种群中的所有个体进行编码,根据数据种群的变化规则,采用全局搜索和交叉算法,对种群进行优化,其中交叉操作的交叉点的选取需要根据适应度函数变化,以保证算法的覆盖范围,同时也是通过自适应的动态交叉率 P0 的操作而得到算法的初始数据,变异操作的过程通过收敛计算,剔除算法中的不良基因,对每个种群数据的基因位优化,并替代上一代的因子以种群的自适应的动态概率 Pn 相互独立进行变异,并与免疫算子结合在一起,形成一个优化的个体。IGA 算法的状态转移情况可用随机过程对其进行描述,具体描述如下: 通过对初始数据群体进行一系列的自适应交叉、自适应
7、变异操作,并对数据进行接种疫苗,然后由种群进行免疫选择,在经过数据优化后形成一个完整的过程,即从 AK到 DK 形成一个完整的马尔科夫链,实现对初始种群的优化。3 结束语 通过对传统的遗传算法进行分析,提出一种基于 IGA算法的构件化软件测试用例生成模型,采用接种免疫疫苗的方法对个体进行优化,对该模型的详细功能进行研究,使用 IGA 算法的效率远高于遗传算法,能够提高构件化软件测试用例在软件测试过程中的测试效率,通过对比也能够说明该算法的效率高于传统的遗传算法和随机算法,对软件的测试效果也十分有效,同?r 也为构件化测试的软件的发展提供了支持。 参考文献 1汪浩,谢军凯,高仲仪.遗传算法及其在软件测试数据生成中的应用研究J.计算机工程与应用,2012(12). 2单锦辉,土戟,马晓冬,等.面向路径的测试数据自动生成工具及其图形界面的 Tcl/Tk 设计J.计算机工程与应用,2013(12). 3聂长海,徐宝文.一种最小测试用例集生成方法J.计算机学报,2013(12).