关键词:
软件测试
测试数据生成
多策略黑猩猩优化算法
支持向量机回归模型
摘要:
软件测试是改善软件质量的一个关键技术。传统的手工构造测试数据技术具有缺陷,不但工程量大、费时,而且易于发生纰漏。自动化测试在提升软件测试质量方面起着关键作用,影响自动化测试的一个重要因素是测试数据的自动生成,自动生成测试数据的根本目的是得到覆盖率大、纠错功能好的测试数据,从而可以大大提高测试数据的质量。因此,测试数据的自动生成对于自动化测试具有重要意义。基于群体智能优化算法的测试数据生成方法主要是利用插桩适应度函数,把测试数据生成问题转换为函数优化问题,通过计算来处理函数型优化问题,进而解决测试数据生成问题,所以算法的选择必不可少。黑猩猩优化算法是最近提出的一种优秀的智能优化算法,具有操作简洁、参数较少、自适应的搜索解空间、计算成本低及能将各类优化问题融合的优势,已被成功应用于解决各种实际问题,并取得了良好的效果。但是该算法在搜索过程中,容易陷入局部最优,不能很好地实现开发与探索之间的平衡,且算法起初收敛速度很快,随着迭代次数的增加,收敛速度变得越来越慢。另外,考虑到测试数据生成方法的个体适应度值主要依靠传统的插桩适应度函数计算,而这种方式是十分耗时的。本文研究课题是针对标准黑猩猩优化算法存在的不足、当前软件测试领域的测试数据生成低效率以及适应度值计算时间消耗大等问题,提出了一种支持向量机回归模型和多策略黑猩猩优化算法相结合的方法(Support vector machine regression model-Multi-strategy chimpanzee optimization algorithm,SVR-MCh OA),本文主要工作如下:(1)针对标准黑猩猩优化算法存在的不足进行改进针对传统的黑猩猩优化算法存在的局限进行改进,引入三个策略:策略一:拉丁超立方策略,将原始黑猩猩优化算法使用的随机初始化种群改为拉丁超立方初始化种群,可以增加群体的多样化和提高群体质量,获得较好的初始解,提高收敛精度;策略二:非线性递减收敛因子,把非线性衰减收敛因子引入到原始黑猩猩优化算法中代替线性衰减收敛因子,用来权衡算法的整体和部分勘测能力;策略三:正余弦波扰动因子,在黑猩猩位置更新过程中添加正余弦波扰动因子,以弥补黑猩猩优化算法的不足,如寻找局部最优而非全局最优,以及利用和探索过程中缺乏平衡。(2)引入支持向量机回归模型计算适应度值利用SVR来代替传统的插桩适应度函数计算适应度值:首先使用MCh OA生成一定数量的测试数据驱动插桩适应度函数得到适应度值,将测试数据及其适应度值划分为训练样本和预测样本,使用训练样本训练SVR,利用预测样本制定合适的适应度值范围,在后期种群进化中,直接利用SVR预测模型计算适应度值近似值,对于符合范围的适应度值再使用插桩适应度函数计算其精确值,进而达到降低计算适应度值的时间消耗。综上所述,设计了对比实验,首先,为了验证MCh OA算法的有效性,本文选取12个测试函数与传统的黑猩猩优化算法以及其他类似的经典算法进行对比实验;其次,选用了7个在软件测试数据生成领域经常被使用的基准程序作为实验对象,通过类似的算法进行对比,结果表明,MCh OA生成测试数据的效率更高;最后,为了进一步证明SVR-MCh OA在降低时间消耗上相比其他智能算法更加有效,本文继续选取同样的基准程序进行相同对比算法的对比实验,实验结果表明,本文提出的SVR-MCh OA在降低迭代次数和运行时间上更具有优越性。