论文部分内容阅读
随着软件技术的迅速发展,软件得到了广泛的应用。软件测试在整个软件开发环节中所占的比重很高,因此,如何提高软件测试效率、降低软件测试成本已成为软件行业相关人员关注的主要问题之一。软件测试数据自动生成是降低软件测试成本的有效途径。近年来,面向单路径的测试数据自动生成研究相对成熟,但面向多路径的测试数据自动生成研究还处于起步阶段。应用遗传算法解决测试数据生成已成为一种可行的方法。现有基于遗传算法的多路径测试数据生成主要存在两方面问题:一是直接将单路径的路径相似度算法应用到多路径的测试数据生成中;二是适应度函数仅考虑多条路径的平均值,即计算个体对于目标路径集中多条路径的适应度平均值作为该个体的适应度值,这种计算方法可能在多条路径的相似度值波动性较大时会出现问题。为此本文探讨了一种新的基于遗传算法的多路径测试数据生成方法,设计了针对目标路径集中某条目标路径的路径相似度计算算法,综合考虑了路径相等位和路径位权值因素,即通过计算两条路径相同结点的个数和对两条路径不同对比位设定不同的权值来表征路径的相似度。针对适应度函数考虑了仅以多条路径的平均值作为适应度值衡量可能不够全面,因此本文引入波动性因素,通过这种引入可以有效的评估个体适应度。在此基础上,本文实现了基于遗传算法的多路径测试数据生成方法,并进行了实验验证。实验结果表明在满足路径覆盖目标的前提下,相比现有方法,本文方法可以比较明显地降低测试数据生成的迭代次数和生成时间,提高测试数据生成效率。