论文部分内容阅读
测试数据自动生成是提高软件测试效率和软件可靠性的关键技术,它能够降低手工测试的高额成本,提高测试过程的可信赖度,改变测试人员全凭经验设计测试数据的现状。人们将各种启发式搜索算法,尤其是人工智能搜索算法,作为解决测试数据自动生成问题的核心算法,并取得了一定的成果。目前,以基于遗传算法的测试数据自动生成方法的研究居多,但遗传算法涉及的参数较多,编码解码占用大量CPU时间,运行效率相对较低。模型相对简单,需设置的参数相对较少的粒子群算法为解决测试数据自动生成问题提供了新的思路。研究者们用实验证明了粒子群算法生成测试数据的高效性,认为粒子群算法在此领域具有很好的应用前景。本文以提高搜索算法生成测试数据的效率和其应用于测试数据自动生成领域的实用性为目的,提出基于改进简化粒子群算法(Simple Particle Swarm Optimization, sPSO)的测试数据自动生成方法。简化粒子群算法的进化方程中去掉了粒子速度项,仅由粒子位置更新实现进化过程。本文主要工作包括:(1)研究常用的测试数据自动生成方法,并对已应用于此领域的遗传算法,模拟退火算法,粒子群算法的特点进行分析和比较,为后续研究工作做准备。(2)根据sPSO的特点,对惯性权重w进行初步研究,提出w取较小值的sPSO能大大提高对某些特定程序生成测试数据的效率:(3)提出为每个粒子设置随机w的方法,以解决传统w设置方式导致粒子对搜索域遍历不均匀的问题。(4)解决sPSO为某些程序生成测试数据时,粒子位置频繁跳出搜索域的问题,提出将测试数据进行归一化处理后的值作为粒子位置的方法。(5)以跳出局部最优解,加快算法收敛速度为目的,对简化粒子群算法加入了新的扰动策略,该策略以全局极值进化停滞代数为触发条件,应用精英均值偏差法判断种群个体是否发生过早收敛现象,如果发生早熟现象,则对种群进行重新初始化,否则,用模拟退火算法对当前全局极值进行模拟退火。(6)将改进sPSO算法用于生成路径测试数据,通过实验证明此方法的实用性和高效性。