论文部分内容阅读
时代以及科技的进步,计算机越来越渗入到人们的生活中,软件也随之不断地上新,人们在使用软件的时候越来越重视软件的质量要求。软件测试的工作在软件开发周期周期中起到了对待测测试软件质量的检测,软件测试的工作一定程度上保证了软件的质量,而在对软件进行测试时,繁冗的测试用例集会使得在进行测试工作时的效率变低,所以能够自动化生成出简单而高效的测试用例可以大大提高软件在测试时的效率,同时节约了人力和物力。为了解决测试用例自动生成的问题,通过构造出有效的适应度函数将其变为是函数的优化问题,接着选取高效的智能搜索算法来解决测试用例自动生成问题。本文在智能搜索算法中选取了粒子群算法,由于该算法的参数少,没有遗传算法中需要交叉变异的复杂过程,实现起来比较简单的优点,所以本文采用了粒子群算法来实现测试用例的生成。但是传统的粒子群算法存在着不足之处,例如容易陷入局部收敛,收敛速度较慢等缺陷。为了优化目前粒子群算法比较容易陷入局部最优、后期收敛过慢等的缺陷,在本文提出了一种改进惯性权重参数来优化算法的方法。其中应用了差分进化算法思想中的参数之一变异算子的操作来改进算法的自适应,在惯性权重参数中加入余弦函数,使其可以在算法运行时产生一个周期振荡的效果,不再作为一个固定的值作为输出,并且对算法的速度和搜索空间进行边界限制以防止粒子跳出所规定的搜索空间并稳定粒子运行速度保证算法的效率。选择相应的测试函数,使用MATLAB软件将提出的改进后的优化算法与其他两种算法进行仿真实验对比,结果表明,本文所提出的粒子群优化算法在后期收敛速度以及取得适应度值的稳定性上有一定的提升。对于测试用例的生成如何与粒子群算法的结合,提出了适应度函数作为两者之间的桥梁,提出了一种基于分支覆盖准则的桩函数,使用分支距离法来设计出适应度函数,引入分支权重,每个分支有不同的权重值,使每个测试用例对应的适应度值更加优异。改进后的基于动态调整惯性权重的粒子群算法运用到生成测试用例方法中,同时生成算法的一个整体框架直观了解算法流程。最后实验证明,基于动态调整惯性权重的粒子群算法生成的测试数据可以实现程序的分支全覆盖同时在有效性方面有较好的提高。