论文部分内容阅读
软件测试是保证软件质量的重要手段。测试数据自动生成技术可以提高软件测试效率,降低软件开发成本。面向路径覆盖的测试数据生成是软件测试中的一个重要方向,近年来,人们对该问题进行了深入的研究。对于常规的软件,已有方法多针对单条或少数几条目标路径的测试数据生成问题,而实际应用中大规模路径普遍存在,已有方法很难有效解决,所以有必要提出有效的多路径覆盖测试数据生成方法,以满足软件测试的需求。另外,对于含有随机数的软件,传统的测试准则不再奏效。因此,本文给出了两类特定路径覆盖测试数据生成问题的模型和进化求解方法。本文主要包括以下两个方面:(1)针对常规软件的路径覆盖问题,本文提出了基于局部进化遗传算法的测试数据生成方法。建立了多路径覆盖问题的数学模型,采用粗粒度评价函数作为目标函数;提出了基于局部进化的遗传算法解决优化问题,在算法的进化过程中,根据目标函数对个体分组,对每组个体实施进化操作之后,采用细粒度的评价函数进行选择个体。通过在算法的不同阶段使用不同粒度的评价函数,提高了测试数据的生成效率。(2)针对含有随机数软件的路径覆盖问题,传统的测试准则不再适用,本文提出针对此类软件的测试充分性准则。根据此测试准则,把测试数据生成问题也转化为函数优化问题,建立含随机数软件测试数据生成问题的优化模型,并且提出了进化求解方法。在进化求解的过程中,由于个体的适应值很难进行计算,本文运用概率论的知识给出了个体适应值的近似计算方法。本文的研究成果丰富了软件测试理论,提高了测试数据生成效率,为保障软件质量提供了技术支持。