论文部分内容阅读
组合测试是软件测试领域的重要测试方法之一。覆盖表作为其测试用例集,能够以少量的测试用例对软件各因素之间的相互作用关系进行最大限度的针对性覆盖,可以有效检测由软件各因素相互作用所触发的故障。如何得到尽可能小规模的覆盖表是组合测试的关键,很多数学方法、贪心算法以及演化搜索方法等被应用于生成各种覆盖表,本文首先对已有算法进行了较为详细的分析及概括,并在此基础上针对演化搜索方法的性能受到方法本身配置参数影响很大这一实际问题,以二维覆盖表生成为实例,系统地对典型的演化搜索方法--遗传算法的种群规模、进化代数、交叉概率、变异概率以及遗传算法的变种算法等因素进行探索,设计了pair-wise法、Base choice法和爬山法三条实验路线,在离散区间内探索遗传算法的这些配置参数及其相互作用对算法生成二维覆盖表效果的影响。本文在上述实验的基础上又提出了双演化方法以进一步提高遗传算法的性能。该方法实现了Hadoop平台下覆盖表的多配置并行自动化生成,通过遗传算法自身的演化能力,在连续值区间内对覆盖表生成的遗传算法参数配置进行大规模的进一步迭代优化,以探索遗传算法在覆盖表生成领域的潜力。本文工作主要为了回答以下三个问题:1)对于特定二维覆盖表生成问题,是否存在遗传算法的较优参数配置;2)对于一般的二维覆盖表生成问题,是否存在通用的遗传算法较优参数配置;3)如果不存在确定的通用最优参数配置,那么是否存在遗传算法参数配置的较优取值范围。本文所采用的四条实验路线可以整合并应用于大部分演化搜索算法的性能优化实验中,为如何提高演化搜索类算法在覆盖表生成领域的性能提供了通用的实验框架。同时,该实验框架能够进一步扩展到其他应用场景下的演化搜索算法的性能研究中,为整个演化搜索算法的性能发掘及提升提供了实践基础。