关键词:
软件测试
粒子群算法
蚁群算法
面向路径
测试数据自动生成
摘要:
软件自动化测试的核心是高效自动地生成测试数据。人力构造测试数据是一项非常耗时耗力的工作,不仅工作量繁重,而且工作内容也比较盲目。自动生成测试数据则可弥补上述缺陷,减轻测试人员的工作量,显著提高软件测试的效率。近年来,利用智能优化算法实施测试数据自动生成的工作取得了较大的进展,比较热门的是基于遗传算法的测试数据生成研究,但是,由于遗传算法初始时需要对个体进行编码,导致该算法复用性不强。且编码、解码占用大量CPU时间,运行效率会相对较低。而研究发现,粒子群算法模型简单、搜索效率高,在测试数据自动生成领域是一种很有前途的算法。以此为出发点,本文在研究测试数据生成技术和智能优化算法的基础上,提出了两种基于粒子群算法的优化改进算法,具体研究工作和成果如下:1.提出一种简化改进的粒子群算法。对标准粒子群算法进行降阶处理,简化粒子的进化过程,并通过与标准粒子群算法的对比实验,验证了该优化策略的可行性。粒子群算法经过改进以后,不确定参数就只剩下惯性权重,本文对惯性权重的取值方法也进行了研究分析,提出当惯性权重在适当的定义域内随机选取时,算法的搜索遍历度最高。2.提出一种基于改进粒子群-蚁群组合算法进行测试数据生成的方法。为了改进粒子群算法解决问题时容易陷入局部最优的现象,将优化后的粒子群算法与蚁群算法相结合,充分凝聚两个算法的优点。这种方式规避了粒子群算法易陷入局部最优的缺陷,并且十分简便易懂。实验结果表明,将此组合算法用于测试用例的自动生成,最大程度地体现了两个算法的优势。利用反馈信息增强全局搜索能力,保证整个求解过程适应度高的粒子个体与适应度低的粒子个体数目差距不会过大,有效地提升了测试数据自动生成的稳定性和平衡性,进而解决搜索过程易“早熟”的问题。3.提出一种基于K均值-粒子群组合算法生成测试数据的方法。为了解决粒子群算法的运行效率受粒子群规模影响较大的问题,在粒子群算法中引入K-means算法的思想。在每次迭代过程中,均先利用K-Means算法划分粒子群,以此减少算法的迭代次数,提高算法的运行效率。实验结果表明,将KPSO算法应用于测试数据的自动生成,既确保了生成数据的质量,又明显提高了算法的运行效率,并且有效节约运行时间使得测试数据自动化生成更可靠、更合理,实用价值更高。