测试所有配置,是否值得?对JHipster Web开发栈的配置采样评估
软件工程
2018-06-18 v3
摘要
许多测试可配置软件系统的方法都始于同一个假设:测试所有配置是不可能的。这促使了面向可变性的抽象和采样技术的定义,以应对庞大的配置空间。然而,如果所需的工作量保持在可接受的范围内,通过简单枚举来穷尽测试所有配置并不存在理论上的障碍。不仅如此:我们相信,通过系统地和穷尽地测试一个可配置系统,可以学到很多东西。在本案例研究中,我们报告了首次尝试测试一个工业级、开源可配置软件系统——JHipster(一个流行的Web应用程序代码生成器)的所有可能配置。我们使用一个由80台机器组成的集群,在4个晚上总计使用了4,376小时(182天)的CPU时间,为JHipster的26,000多个配置构建了一个测试支架。我们发现35.70%的配置失败,并识别了导致错误的特性交互。我们展示了采样策略(如相异度和2-wise):(1) 比JHipster持续集成中使用的12个默认配置更有效地发现故障;(2) 可能成本过高并超出可用的测试预算。我们将此定量分析与JHipster首席开发人员的定性评估进行了交叉对比。
引用
@article{arxiv.1710.07980,
title = {Test them all, is it worth it? Assessing configuration sampling on the JHipster Web development stack},
author = {Axel Halin and Alexandre Nuttinck and Mathieu Acher and Xavier Devroey and Gilles Perrouin and Benoit Baudry},
journal= {arXiv preprint arXiv:1710.07980},
year = {2018}
}
备注
Submitted to Empirical Software Engineering