论文部分内容阅读
软件测试是保证软件质量的重要手段,其中测试数据的自动生成则是测试阶段最关键的技术。近年来广泛应用的面向对象(OO)技术,在提高了代码重用性和增强程序灵活性的同时,由于其特性也使得传统的软件测试技术已经不能适应现代软件开发技术的要求。统一建模语言(UML)作为广泛应用的标准系统建模语言,易于表达、功能强大。许多面向对象软件测试的研究都是围绕UML模型展开的,所以研究基于UML模型的软件测试可以使测试工作从软件开发周期的早期阶段开始。粒子群优化算法是由J.Kennedy和R.C.Eberhart于1995年提出的一种基于群体的自适应搜索进化算法。因其概念简单、参数较少、易于实现、计算速度快等特点,自提出以来已经受到全世界研究者的广泛重视并被应用于许多领域。已有学者尝试将粒子群优化算法等人工智能技术运用于软件测试中,并取得了一定的研究成果。但在进化算法的搜索过程中,算法的探测和开发能力单靠一种算法往往无法得到有效的利用。因此,本文将模拟退火算法的Metropolis准则引入到粒子群优化算法中,得到模拟退火-粒子群融合算法,使得粒子在飞行的过程中,不仅可以接受使目标函数适应度“变优”的解,而且可以一定的概率接受使目标函数适应度“变坏”的解。本文提出了一种根据多态扩展UML模型遍历得到多态测试路径的方法,并利用模拟退火-粒子群优化算法为相应的多态测试路径生成测试数据,同时结合实例详细地介绍了完整的实现方案,并在设计的测试数据自动生成工具中对该方案进行了验证。首先对基于UML模型的多态性测试问题进行了深入研究,结合多态性对UML活动图进行扩展,并提出了一种优化算法从扩展UML活动图中遍历出数量较少但覆盖率高的测试路径集,从而有效地解决了面向对象技术中的多态性测试问题;其次,根据测试数据自动生成的要求,利用模拟退火算法的思想对粒子群优化算法进行改进,并将改进后的粒子群优化算法应用到软件测试中,为所生成的测试路径生成测试数据。最后,设计了一个路径测试数据自动生成工具,用具体程序实例对其进行演示,并对生成的结果数据进行分析比对。分析结果表明该工具在对源代码进行插装后,根据模拟退火-粒子群优化算法产生一组测试数据,成功地为目标路径自动生成测试数据。