Skip to main content
QUICK REVIEW

[論文レビュー] A Comparison of 10 Sampling Algorithms for Configurable Systems

Flávio Medeiros, Christian Kästner|arXiv (Cornell University)|Feb 5, 2016
Software Engineering Research参考文献 45被引用数 7
ひとこと要約

本論文では、さまざまな仮定のもとで、10種類のサンプリングアルゴリズムが、構成可能なCシステムにおける障害検出能力とサンプル集合のサイズを比較評価している。その結果、最も有効で無効な設定を最も多く選択するような単純なアルゴリズムが、最も高い効率を示した一方、制約を考慮する分析は著しくオーバーヘッドを増やし、実際の応用では多くの場合、実行不可能な状況に陥ることがわかった。

ABSTRACT

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種類の最新のサンプリングアルゴリズムの障害検出能力とサンプル集合サイズを評価・比較すること。
  • 制約を無視する、ヘッダーファイルを無視する、ビルドシステムの情報を無視する、およびファイル単位の分析を採用するといった制限付きの仮定が、アルゴリズムのパフォーマンスに与える影響を調査すること。
  • 実世界の構成可能なシステムにおける、分析の負荷(サンプル集合サイズ)と障害検出の有効性の間の実用的トレードオフを特定すること。
  • グローバル分析、ヘッダーファイルからの構成オプションの取り込み、ビルドシステムメタデータの統合が、サンプリングアルゴリズムに与える実現可能性と影響を評価すること。

提案手法

  • Linux Kernel、Gcc、BusyBox、Apache などのシステムに由来する、135件の既知の構成関連障害を含むコーパスを用い、24のオープンソースCプロジェクトに対して、10種類のサンプリングアルゴリズム(5種類のt-wise変種、ステートメントカバレッジ、ランダム、1つ無効化、1つ有効化、最も多くの有効化)を評価した。
  • 2つの研究を実施した:1つ目は制約やヘッダーファイル、ビルドシステム情報、ファイル単位の分析を無視するという有利な仮定のもとで、2つ目は制約、グローバル分析、ヘッダーファイルの含め方を含む現実的な仮定のもとで実施した。
  • Linux Kernel、Gcc、BusyBox、Apache などのシステムから得られた、先行研究で報告済みの135件の既知の構成関連障害を用いた。
  • サンプル集合サイズの関数としての障害検出率を測定し、さまざまな仮定と構成におけるアルゴリズムの比較を行った。
  • 制約の取り扱い、グローバルスコープ、ビルドシステム情報が、サンプル集合サイズと障害検出に与える影響を分析した。
  • サンプル集合サイズと障害検出能力のバランスを取る新しいアルゴリズムの組み合わせを同定・評価した。

実験結果

リサーチクエスチョン

  • RQ1理想化された仮定のもとで、さまざまなサンプリングアルゴリズムは、障害検出能力とサンプル集合サイズにおいてどのように比較されるか?
  • RQ2制約やヘッダーファイル、ビルドシステム情報の無視といった仮定が、サンプリングアルゴリズムのパフォーマンスと実行可能性にどのように影響を与えるか?
  • RQ3グローバル分析やヘッダーファイルからの構成オプションの取り込みが、障害検出をどの程度向上させるか、またサンプル集合サイズの観点から見て、そのコストはどの程度か?
  • RQ4実際の状況において、サンプル集合サイズと障害検出能力の両者をバランスよく満たす最良のアルゴリズムの組み合わせは何か?
  • RQ5制約やビルドシステムなどの現実のシステム的特徴は、サンプリングアルゴリズムの実用性にどのように影響を与えるか?

主な発見

  • すべてのサンプリングアルゴリズムが、135件の既知の構成関連障害のうち少なくとも66%を検出しており、多くのアルゴリズムが80%以上を検出していた。
  • サンプル集合が大きいアルゴリズムほど多くの障害を検出できたが、最も有効で無効な設定を最も多く選択するような単純なアルゴリズムは、最小限のサンプル集合サイズで高い障害検出率を達成しており、多くの文脈において最も効率的であった。
  • 構成オプションに制約を含めると、分析時間が著しく増加し、特に3通りや4通りの組み合わせを検出するようなアルゴリズムは、組み合わせ爆発のため、多くの場合、実行不可能になった。
  • グローバル分析やヘッダーファイルからの構成オプションの取り込みは、サンプル集合サイズを著しく増加させ、多くのアルゴリズムを実世界での使用に不適切なものにした。
  • ビルドシステム情報はサンプル集合サイズにわずかな影響しか与えなかったが、複雑な分析の課題を引き起こした。
  • サンプル集合サイズと障害検出能力の両者をうまくバランスさせる新しいアルゴリズムの組み合わせが同定され、従来のアプローチの実用的代替案を提供した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。