Test Case Selection (TCS) aims to select a subset of the test suite to run for regression testing. The selection is typically based on past coverage and execution cost data. Researchers have successfully used multi-objective evolutionary algorithms (MOEAs), such as NSGA-II and its variants, to solve this problem. These MOEAs use traditional crossover operators to create new candidate solutions through genetic recombination. Recent studies in numerical optimization have shown that better recombinations can be made using machine learning, in particular link-age learning. Inspired by these recent advances in this field, we propose a new variant of NSGA-II, called L2-NSGA, that uses linkage learning to optimize test case selection. In particular, we use an unsupervised clustering algorithm to infer promising patterns among the solutions (subset of test suites). Then, these patterns are used in the next iterations of L2-NSGA to create solutions that preserve these inferred patterns. Our results show that our customizations make NSGA-II more effective for test case selection. The test suite sub-sets generated by L2-NSGA are less expensive and detect more faults than those generated by MOEAs used in the literature for regression testing.
翻译:测试案例选择 (TCS) 旨在选择要运行回归测试的测试套件的子集。 选择通常基于过去的范围和执行成本数据。 研究人员成功地使用了多目标进化算法( MOEAs) 来解决这个问题, 如NSGA- II 及其变体。 这些传统的交叉操作器使用传统的交叉操作器来通过基因重组创造新的候选解决方案。 最近的数字优化研究表明, 可以通过机器学习, 特别是链接年龄学习来更好地重组组合。 由于最近在这一领域的这些进步, 我们提出了一个新的 NSGA- II 的变种, 叫做 L2- NSGA- II, 使用链接学习来优化测试案例选择。 特别是, 我们使用一种未经监督的组合算法来推导出解决方案( 测试套件的子集法子集法) 有希望的模式( 测试套件的子集法子集 ) 。 之后, 这些模式被用于L2- NSGA- II II 来保护这些推断模式。 我们的结果显示, 我们的定制使 NSGA- II II 对测试案例选择更为有效。 L2- NSGA 生成的测试套套件比在测试中产生的模型中使用的回归中产生的模型中产生的错误更贵。