论文部分内容阅读
近年来,利用已有测试数据的有用信息生成回归测试数据的研究受到广泛的关注,但目前在这方面取得的研究成果中,绝大部分是面向单路径的回归测试数据生成,面向多路径回归测试数据生成研究尚不成熟。遗传算法常被用于解决多路径覆盖问题,而目前利用遗传算法生成覆盖多路径回归测试数据,主要采用多条路径串行方式,相当于多次运行遗传算法,因而生成的测试数据效率不高。为此,本文提出了一种基于多种群遗传算法的多路径回归测试数据生成方法,该方法充分利用了已有测试数据的有用信息,并能够通过执行一次遗传算法,生成覆盖所有目标路径的测试数据,从而提高回归测试数据生成效率。本文的主要工作包括:(1)深入学习研究了回归测试、路径测试和遗传算法的基本理论和方法,为解决覆盖多路径的测试数据生成问题提供理论基础。(2)建立了覆盖多路径测试数据生成问题的多目标优化模型,并提出了一种改进的多种群遗传算法求解该模型。在多种群遗传算法的结构形式、遗传算子以及迁移策略等方面进行改进,尽量避免传统遗传算法的局部收敛缺陷。此外,在多种群遗传算法中,子种群的个数对算法的运行效率有着很大的影响,为避免子种群数量过多而增加算法的负荷,本文对目标路径进行约简和分组处理,利用不可达路径检测模型找出不可达路径,去除不可达路径,减少目标路径的规模,然后对约简的目标路径进行相似度分组,每组路径对应一个子种群,从而减少了子种群的数量。(3)设计了利用遗传算法求解多目标优化模型的个体评价函数,主要采用路径相似度思想构造适应度函数,并将匹配节点的位置因素考虑进去,根据节点匹配的先后顺序对匹配节点添加节点权值,匹配的节点位置越靠前,赋予的权值越大,因而个体的适应度值越大。(4)在Eclipse平台上用Java实现了多路径的回归测试数据生成系统,系统集成了本文方法和已有的回归测试数据方法,分别在被测程序上运行这些方法,通过对运行结果进行对比分析,从而验证了本文方法能够提高回归测试的效率。