论文部分内容阅读
软件测试是保障软件质量的重要方法。组合测试是一种有效的黑盒测试方法,能够有效地探测由参数交互引发的软件失效。组合测试数据生成是组合测试领域重要的研究方向。近年来,基于搜索的组合测试数据生成受到越来越多的关注。研究者们已经将多种元启发式算法引入组合测试数据生成并且都取得了有竞争力的结果。然而,各种算法各有优缺点。因此,探索更多的演化算法在组合测试数据生成领域的表现是迫切需要的。本文工作具体在以下几个方面: 第一,使用鸟群算法生成组合测试数据并探究其在该领域的具体性能。其中,利用覆盖矩阵有效地降低One-test-at-a-time算法的空间复杂度。 第二,参数配置对演化算法的性能具有重要的影响。演化算法针对不同问题通常需要不同参数配置,本文使用参数调优技术为鸟群算法推荐最佳参数配置。此外,针对演化算法可能陷入局部最优问题,本文提出了一种改进的鸟群算法。该算法分别从空间探索、种群多样性和种群状态三个方面分别提出莱维飞行,鸟重生策略和动态飞行频率三种优化策略融入鸟群算法。实验结果表明优化后的算法能够生成规模更小的覆盖数组。 第三,种群初始化对演化算法具有重要作用。在变力度测试数据生成中,本文提出了基于海明距离的种群初始化使得鸟群在解空间中分布更加分散。此外,通过分析子模型之间的交叉关系以及子模型对原模型覆盖问题,本文还提出了测试需求约简策略提高算法在具体场景中的性能。实验结果表明改进的鸟群算法与其他方法和工具相比更具竞争力。