Testing configurable systems continues to be challenging and costly. Generation of configurations for testing tends to use either techniques based on semantic sampling (e.g., logical formulas over configuration variables, often called presence conditions) or structural code metrics (e.g., code coverage). In this paper we describe our hybrid approaches that combine these two kinds of techniques to good effect. We present new configuration-generation algorithms that leverage constraint solving (SAT and MaxSAT) and configuration fuzzing, and implement our approach in a configuration-generation framework, CONFIZZ. CONFIZZ both enables the generation of maximal configurations (maximal sets of presence conditions that can be satisfied together) and performs code-metric guided configuration fuzzing. Results from evaluation on BusyBox, a highly configurable benchmark, show that our MaxSAT-based configuration generation achieves better coverage for several code metrics. Results also show that, when high coverage of multiple configurations is needed, CONFIZZ's presence-condition fuzzing outperforms alternatives.
翻译:测试可配置系统仍然具有挑战性且成本高昂。用于测试的配置生成通常基于语义采样(例如,配置变量上的逻辑公式,通常称为存在条件)或结构代码度量(例如,代码覆盖率)等技术。本文描述了我们的混合方法,该方法将这两种技术有效结合。我们提出了新的配置生成算法,利用约束求解(SAT和MaxSAT)和配置模糊测试,并在配置生成框架CONFIZZ中实现了我们的方法。CONFIZZ既能生成最大配置(即可同时满足的存在条件最大集合),又能执行基于代码度量的引导式配置模糊测试。在高度可配置的基准测试BusyBox上的评估结果表明,基于MaxSAT的配置生成在多个代码度量上实现了更高的覆盖率。结果还表明,当需要多个配置的高覆盖率时,CONFIZZ的存在条件模糊测试优于其他替代方案。