MulTi-Wise Sampling: Trading Uniform T-Wise Feature Interaction Coverage for Smaller Samples
<|reference_start|>MulTi-Wise Sampling: Trading Uniform T-Wise Feature Interaction Coverage for Smaller Samples: Ensuring the functional safety of highly configurable systems often requires testing representative subsets of all possible configurations to reduce testing effort and save resources. The ratio of covered t-wise feature interactions (i.e., T-Wise Feature Interaction Coverage) is a common criterion for determining whether a subset of configurations is representative and capable of finding faults. Existing t-wise sampling algorithms uniformly cover t-wise feature interactions for all features, resulting in lengthy execution times and large sample sizes, particularly when large t-wise feature interactions are considered (i.e., high values of t). In this paper, we introduce a novel approach to t-wise feature interaction sampling, questioning the necessity of uniform coverage across all t-wise feature interactions, called \emph{\mulTiWise{}}. Our approach prioritizes between subsets of critical and non-critical features, considering higher t-values for subsets of critical features when generating a t-wise feature interaction sample. We evaluate our approach using subject systems from real-world applications, including \busybox{}, \soletta{}, \fiasco{}, and \uclibc{}. Our results show that sacrificing uniform t-wise feature interaction coverage between all features reduces the time needed to generate a sample and the resulting sample size. Hence, \mulTiWise{} Sampling offers an alternative to existing approaches if knowledge about feature criticality is available.<|reference_end|>
@article{pett2024multi-wise,
    title={MulTi-Wise Sampling: Trading Uniform T-Wise Feature Interaction Coverage
  for Smaller Samples},
    author={Tobias Pett, Sebastian Krieter, Thomas Th"um, Ina Schaefer},
    journal={arXiv preprint arXiv:2406.19801},
    year={2024},
    doi={10.1145/3646548.3672589},
    archivePrefix={arXiv},
    eprint={2406.19801},
    primaryClass={cs.SE cs.LG}
}