[论文解读] A Comparison of 10 Sampling Algorithms for Configurable Systems
本文评估了10种适用于可配置C系统的采样算法,在不同假设条件下比较其故障检测能力与样本集大小。研究发现,像most-enabled-disabled这类简单算法在效率方面表现最佳,而约束感知分析会显著增加开销,通常使算法在实际应用中不可行。
Almost every software system provides configuration options to tailor the system to the target platform and application scenario. Often, this configurability renders the analysis of every individual system configuration infeasible. To address this problem, researchers have proposed a diverse set of sampling algorithms. We present a comparative study of 10 state-of-the-art sampling algorithms regarding their fault-detection capability and size of sample sets. The former is important to improve software quality and the latter to reduce the time of analysis. In a nutshell, we found that sampling algorithms with larger sample sets are able to detect higher numbers of faults, but simple algorithms with small sample sets, such as most-enabled-disabled, are the most efficient in most contexts. Furthermore, we observed that the limiting assumptions made in previous work influence the number of detected faults, the size of sample sets, and the ranking of algorithms. Finally, we have identified a number of technical challenges when trying to avoid the limiting assumptions, which questions the practicality of certain sampling algorithms.
研究动机与目标
- 评估并比较10种最先进的可配置系统采样算法的故障检测能力与样本集大小。
- 研究限制性假设(如忽略约束、头文件、构建系统信息,以及使用文件级分析)对算法性能的影响。
- 识别在真实可配置系统中分析工作量(样本集大小)与故障检测有效性之间的实际权衡。
- 评估在采样算法中引入全局分析、头文件中的配置选项以及构建系统元数据的可行性与影响。
提出的方法
- 在24个开源C项目(包含135个已知的与配置相关的错误)上评估了10种采样算法:5种t-wise变体、语句覆盖、随机、一个禁用、一个启用,以及most-enabled-disabled。
- 开展了两项研究:一项在有利假设下进行(忽略约束、头文件、构建系统信息、文件级分析),另一项在包含约束、全局分析和头文件包含的现实假设下进行。
- 使用了来自Linux内核、Gcc、BusyBox和Apache等系统的135个已知与配置相关的错误的语料库,这些错误在先前的研究中已有报告。
- 以样本集大小为函数测量故障检测率,比较不同假设和配置下各算法的表现。
- 分析了约束处理、全局作用域和构建系统信息对样本集大小与故障检测的影响。
- 识别并评估了新型算法组合,以在样本集大小与故障检测能力之间实现良好平衡。
实验结果
研究问题
- RQ1在理想化假设下,不同采样算法在故障检测能力与样本集大小方面如何比较?
- RQ2忽略约束、头文件和构建系统信息等假设如何影响采样算法的性能与可行性?
- RQ3全局分析或包含头文件中的配置选项在多大程度上能提升故障检测效果?其在样本集大小方面的代价如何?
- RQ4在实际应用中,哪些算法组合在样本集大小与故障检测能力之间提供了最佳权衡?
- RQ5现实系统特性(如约束、构建系统)如何影响采样算法的实际可行性?
主要发现
- 所有采样算法均检测到了至少66%的135个已知与配置相关的错误,其中大多数算法检测到了超过80%的错误。
- 样本集较大的算法检测到的错误更多,但像most-enabled-disabled这类简单算法在极小的样本集下即可实现高故障检测率,因此在大多数情境下效率最高。
- 在配置选项中引入约束显著增加了分析时间,且常因组合爆炸导致three-wise和four-wise等算法不可行。
- 全局分析以及包含头文件中的配置选项显著增加了样本集大小,使大多数算法在实际应用中变得不切实际。
- 构建系统信息对样本集大小的影响较小,但引入了复杂的分析挑战。
- 识别出新型算法组合,可在样本集大小与故障检测能力之间提供良好平衡,为标准方法提供了实用的替代方案。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。