论文部分内容阅读
随着计算机应用的普及和软件产业的飞速发展,人们对于提高软件质量的要求也越来越迫切。软件测试作为保证软件质量的重要的手段之一,是软件项目顺利实施不可缺少的环节,且通常会耗费高达50%以上的开发成本。研究自动化测试技术来辅助人工测试,可以大大节省测试资源、提高测试效率、拓展测试人员的能力,并显著降低软件开发成本。
演化测试作为一种十分有前景的自动化测试技术,将测试用例的生成过程转化为一个利用遗传算法进行数值优化的问题,以较小的开销获得高质量的测试用例。近年来,越来越多的学者开始关注于演化测试的研究,并取得了一些成果,使演化测试在功能测试、结构测试、性能测试等领域均得以成功地应用。
本文从演化测试的不同应用领域出发,对结构化演化测试技术以及面向对象演化测试技术,进行了深入的研究。论文的主要工作包括:(1)研究并实现了结构化测试中面向路径覆盖的演化测试技术,以快速、自动化地生成满足测试目标的测试用例。(2)通过大量的实验,考察了该方法的性能,并结合已有研究成果给出演化测试适应值函数和相关参数的最佳经验配置。(3)研究了基于错误潜伏状态的演化测试技术,自动化地获得消息序列,使得系统完成从初始状态到目标错误潜伏状态的转化。
论文主要取得以下成果:
●提出了面向路径覆盖的演化测试方法以及若干种适应值函数的构造算法,生成测试用例以覆盖指定的路径。实验表明,本文所提出的方法可以快速且自动化地生成满足测试目标的测试用例,其效率明显优于随机测试和人工测试,并且可以很好地克服静态分析技术中的多种局限性。
●在已有研究基础上,通过本文进一步的实验,给出了一些面向路径覆盖演化测试中对于适应值函数选取与相关演化参数配置的建议。有助于提高演化测试的效率,也为进一步研究提供了坚实的基础。
●在状态变迁序列覆盖的基础上,提出了基于错误潜伏状态的演化测试方法,并给出相应的编码/解码规则和适应值函数的构造方法。实验表明基于错误潜伏状态的演化测试技术能够高效地获得若干消息序列,以触发待测系统从初始状态演变至错误潜伏状态,并有助于提高状态变迁序列覆盖对待测系统中特有错误的敏感性和检测能力。
●构建了演化测试实验平台ETF,该平台以其可配置、可扩展的灵活的体系结构为演化测试进一步的研究提供了有力的支持。