论文部分内容阅读
随着现代科技的进步以及计算机的快速发展,各种各样的计算机软件成为了生活中的必需品,随之,人们对日常使用的软件质量要求也逐渐变高。软件测试是检验软件质量的重要技术手段,而设计测试用例是软件测试的重要环节和核心难点。设计测试用例自动生成将可以大大提升软件测试的效率,同时可以节约大量的人力和物力。因此,测试用例自动生成问题的研究课题具有重要的理论价值和实用意义。
解决测试用例自动生成问题,需要通过构造有效的适应度函数将其转化为优化问题。进而,选取高效的智能搜索算法来解决测试用例自动生成问题。本文选取了具有参数少、概念简单、容易实现等优点的粒子群算法(Particle Swarm Optimization,PSO)解决该问题。针对粒子群算法存在收敛速度慢、易陷入局部最优的缺点,本文进行了分析并优化,将改进后的算法应用到测试用例生成技术中,旨在从整体上提高测试用例生成的效率。主要做了以下两部分研究工作:
(1)首先,研究分析粒子群优化算法的惯性权重因子,提出一种基于动态指数调节变换惯性权重策略,综合考虑种群中所有粒子的适应值并引入随机因子来确保种群多样性,对粒子群算法进行优化;然后,研究分析粒子群算法在解决高维多峰函数寻优时易陷入局部最优的问题,引入一种算法修复变异策略,对当前适应值最差的个体重新计算新的速度值,以此来获取更优的位置,引导种群跳出局部最优。综上两点改进,提出一种非线性指数惯性权重的变体PSO算法(Exponentia Inertia Weight in Particle Swarm Optimization,EIW-PSO);最后,通过对比实验验证了该方法提高了粒子群算法的整体性能,收敛速度更快,求解精度更高。
(2)首先,研究如何将粒子群算法和测试用例生成问题有效结合,提出一种新的适应度函数构造方法,根据分支覆盖准则,引入分支权重因子,对每个分支赋予不同的权重W,使测试用例得到的适应度值更准确;然后,将上述提出的EIW-PSO算法应用到测试用例生成问题中,提出基于EIW-PSO的测试用例生成算法的整体框架;最后,通过对比实验验证了本文的方法总能以最快的速度达到最高的分支覆盖率,并且,算法在收敛过程中稳定性强,可以有效的实现程序分支的全覆盖。
解决测试用例自动生成问题,需要通过构造有效的适应度函数将其转化为优化问题。进而,选取高效的智能搜索算法来解决测试用例自动生成问题。本文选取了具有参数少、概念简单、容易实现等优点的粒子群算法(Particle Swarm Optimization,PSO)解决该问题。针对粒子群算法存在收敛速度慢、易陷入局部最优的缺点,本文进行了分析并优化,将改进后的算法应用到测试用例生成技术中,旨在从整体上提高测试用例生成的效率。主要做了以下两部分研究工作:
(1)首先,研究分析粒子群优化算法的惯性权重因子,提出一种基于动态指数调节变换惯性权重策略,综合考虑种群中所有粒子的适应值并引入随机因子来确保种群多样性,对粒子群算法进行优化;然后,研究分析粒子群算法在解决高维多峰函数寻优时易陷入局部最优的问题,引入一种算法修复变异策略,对当前适应值最差的个体重新计算新的速度值,以此来获取更优的位置,引导种群跳出局部最优。综上两点改进,提出一种非线性指数惯性权重的变体PSO算法(Exponentia Inertia Weight in Particle Swarm Optimization,EIW-PSO);最后,通过对比实验验证了该方法提高了粒子群算法的整体性能,收敛速度更快,求解精度更高。
(2)首先,研究如何将粒子群算法和测试用例生成问题有效结合,提出一种新的适应度函数构造方法,根据分支覆盖准则,引入分支权重因子,对每个分支赋予不同的权重W,使测试用例得到的适应度值更准确;然后,将上述提出的EIW-PSO算法应用到测试用例生成问题中,提出基于EIW-PSO的测试用例生成算法的整体框架;最后,通过对比实验验证了本文的方法总能以最快的速度达到最高的分支覆盖率,并且,算法在收敛过程中稳定性强,可以有效的实现程序分支的全覆盖。