关键词:
软件测试
粒子群优化算法
条件禁忌算法
测试数据
摘要:
测试数据自动生成是软测领域的研究热点问题之一,而粒子群优化算法因其实现简单、参数少、收敛快,能快速自动为被测程序生成测试数据;在软件工程中,测试工作占据很大的份额,因此对提升测试效率,缩减开发时间有重大意义。但粒子群算法有早熟性、收敛精度低和局部搜索性能低等缺陷。本文对该算法在自动生成测试数据领域应用进行研究,针对其缺点做出优化改进,提出了混合动态粒子群算法思想,编程实现了基于混合动态粒子群算法的测试数据自动生成,通过实验显示此优化算法在测试数据自动生成上具有独特优势。主要工作有以下几点:(1)针对粒子群算法存在早熟性和局部搜索性能差的缺陷,在定量研究粒子群聚集度和收敛程度大小基础上,提出一种基于离散度大小的动态调整粒子群参数的优化算法。在讨论了基于搜索的测试数据自动生成的模型前提下,以分支路径覆盖作为测试判别标准,将优化算法应用于生成测试数据;并在考虑分支谓词的结构特征前提下,引入一种新的适应度构造函数。通过对公开的测试程序集进行对比试验,从路径的平均收敛代数和搜索时间两个方面证实:改进后的算法比基本的粒子群算法和参数线性变化的粒子群算法具有优势。(2)针对全连接拓扑结构的粒子群算法在生成测试数据过程中,存在收敛精度低,易陷入局部极值的问题,提出一种混合粒子群算法,并应用于测试数据自动生成。该算法在保证全局收敛性的前提下,对多样性匮乏的种群,首先采用定长环形拓扑结构取代粒子群的全连接拓扑结构;其次,选择候选解时选用轮盘赌方法,更新粒子位置信息和速度信息;最后引入条件禁忌算法,对处于局部极值的粒子采取禁忌处理。通过实验比较表明:该算法和基本粒子群算法比较,使粒子群多样性得到大幅度提升;而在测试数据生成性能上,该算法在模拟退火粒子群算法基础上,分别对搜索成功率和路径覆盖率提高了10%15%,且与基本粒子群算法平均耗时相当,表现出独有的优越性能。(3)在上述研究基础上,进而提出混合动态粒子群算法;采用混合粒子群算法和离散度动态粒子群算法进行有机结合,采用MATLAB语言演示其核心程序实现;以三角形判定程序为例,演示以上三种算法在生成测试数据时对路径的覆盖率、测试效率的情况,并分析其对应种群多样性的波动情况。实验演示表明此优化策略有效可行,性能优越。