论文部分内容阅读
在软件工程中,利用智能搜索算法研究测试用例生成问题是一种有效的方法,在智能搜索算法中,粒子群算法更具有竞争力,因此被广泛应用。回归测试表示对修改后的软件进行重复测试,确认是否产生新的缺陷。在软件开发过程中,频繁使用回归测试可以确保软件的质量,所以对测试用例进行优先级排序可以降低回归测试的成本。本文总结了关于粒子群算法在测试用例生成和排序上的研究成果,针对算法早熟收敛,易于陷入局部极值的问题,对学习因子进行改进,结合反向学习和再次搜索,提出了一种基于改进粒子群的测试用例生成方法;并且将Tent映射和混沌搜索与粒子群算法相结合,将其应用于测试用例排序中。针对本文的主要研究工作和贡献概括如下:(1)针对粒子群算法参数设置问题,改进策略为对Tent参数、惯性权重和学习因子做更合理设定。Tent映射中引入参数可防止粒子落入小周期内,同时利用本身具有的三大特性对种群进行初始化优化,使得粒子均匀分布,提高初始解的质量;引入随惯性权重非线性递减变化而变化的学习因子,用以平衡算法的全局探索和局部开发能力;同时为匹配算法进程中的非线性变化特点,惯性权重?采用常用的指数函数递减法。(2)针对几次迭代后粒子陷入局部极值的问题,通过两种方法进行改进。其一采用梯度下降法完成对最优解与次优解的再次搜索,以极值点为中心设定禁忌区域,对禁忌区域外的粒子进行反向学习,保证快速找到最优解,并提高收敛精度;其二引入了混沌搜索进行优化,对当前种群中的最优粒子pid进行混沌优化,跳出局部最优,同时对当前种群中的部分较差粒子piw进行混沌优化,改善种群多样性。(3)针对测试用例生成和排序问题,先通过程序进行静态分析,然后对适应度函数采用分支距离法构造,其大小作为评价值,达到提高测试用例生成效率的目的;并且采用多目标优化策略,达到对测试用例进行优先级排序的目的。为了验证改进后的粒子群算法在测试用例生成和排序应用上的有效性,分别选取了一系列基准函数和程序进行实验。从算法性能、平均覆盖率和平均迭代次数三个方面对测试用例生成技术进行评价分析;从算法性能、标准化的缺陷检测率、分支覆盖率和有效执行时间四个方面对测试用例排序进行评价分析。实验结果表明:本文提出的改进方法相比于其他粒子群算法在这些指标上均有优势。