论文部分内容阅读
软件测试在软件的整个开发周期中起着至关重要的作用,它是保证软件质量的一个关键环节。传统的软件测试方法一般使用手工设计测试用例,不仅耗时耗力,而且有可能出现遗漏的情况。测试用例生成技术能实现自动化测试,以减少软件开发过程中的人力、财力和时间开销。因此,该课题的研究具有重要意义。基于搜索的测试用例生成技术通过适应度函数,将测试用例生成问题转化为函数优化问题,然后利用启发式搜索算法来解决函数优化的问题,因此启发式算法的选取至关重要。粒子群优化算法作为众多启发式算法中的一种,因其简单高效,且鲁棒性强,被广泛地应用到了测试用例生成领域。本文研究课题是基于粒子群优化算法的测试用例生成技术,围绕着这个课题,本文开展的工作如下:(1)在粒子群优化算法进行测试用例生成的过程中,引入正交搜索机制,即利用奇异值分解来预测种群的进化方向,在其正交方向进行搜索,可避免已搜索过的区域,有助于跳出局部最优解。并且,对粒子速度项改进,使其与正交方向保持一致,保证种群可持续受到正交方向的影响,有利于减少奇异值分解次数,降低时间消耗。(2)在粒子群优化算法进行测试用例生成的过程中,引入局部搜索策略,即对每一代的全局最优解均使用交替变量法进行局部搜索。可使粒子群优化算法发挥其全局搜索性能,而交替变量法发挥其局部寻优能力,二者配合既可兼顾全局性,又能提高其局部搜索精度,使算法的全局搜索和局部搜索能力相协调,提高测试用例生成效率。(3)针对由于程序结构复杂而导致某些分支条件无法得到评价的问题,本文将这些有助于提高适应度值而无法得到评价的分支条件定义为“模式”。首先,预先获取到模式所对应的分支函数信息;然后寻找使得该模式的分支函数值最小的个体,则称该个体含有该最优模式;通过使用交叉算子,将种群中所有的最优模式作为一个整体均组合到一个个体上,既可防止模式在进化过程中被破坏,又可因其他个体均向最优个体学习而加快种群的进化速度,提高测试用例生成效率。(4)本文设计并实现了一个基于Java的测试用例生成平台TCGPSO。该平台适合于部署本文所使用的测试程序;可灵活地对算法中的各个参数进行设置和调节;方便收集和处理多种形式的输出结果信息。