Skip to main content
QUICK REVIEW

[論文レビュー] Fault Localization for Declarative Models in Alloy

Kaiyuan Wang, Allison Sullivan|arXiv (Cornell University)|Jul 23, 2018
Software Testing and Debugging Techniques参考文献 15被引用数 6
ひとこと要約

この論文は、複数のテスト式を活用して、高い精度で障害のあるASTノードを特定する、宣言的 Alloy モデル向けの故障局所化フレームワークであるAlloyFLを紹介する。スペクトラムベース、SATベース、およびミューテーションベースの手法を統合し、特にミューテーションベース手法—特にAlloyFLmu—が、38個の実際の障害付きモデルおよび9,000個のミューテントに対して、他の手法と比較して顕著に高い正確性を示した。

ABSTRACT

Fault localization is a popular research topic and many techniques have been proposed to locate faults in imperative code, e.g. C and Java. In this paper, we focus on the problem of fault localization for declarative models in Alloy -- a first order relational logic with transitive closure. We introduce AlloyFL, the first set of fault localization techniques for faulty Alloy models which leverages multiple test formulas. AlloyFL is also the first set of fault localization techniques at the AST node granularity. We implements in AlloyFL both spectrum-based and mutation-based fault localization techniques, as well as techniques that are based on Alloy's built-in unsat core. We introduce new metrics to measure the accuracy of AlloyFL and systematically evaluate AlloyFL on 38 real faulty models and 9000 mutant models. The results show that the mutation-based fault localization techniques are significantly more accurate than other types of techniques.

研究の動機と目的

  • 制御フローと実行トレースが存在しないことから、障害局所化が困難な、手作業で書かれた複雑なAlloyモデルのデバッグ課題に対処すること。
  • 形式的検証の分野で広く使われる宣言的 Alloy モデルにおいて、ASTノード粒度での自動故障局所化を可能にすること。
  • スペクトラムベース、SATベース、ミューテーションベースの複数の故障局所化戦略の有効性を、実際のモデルおよびミューテントモデルに対して評価すること。
  • 故障局所化の正確性を測るための新しいメトリクスを確立し、提案手法の体系的評価を可能にすること。

提案手法

  • AlloyFLは、テスト式(述語、アサーション、関数)のスイートを用いてモデルの振る舞いを評価し、各テストが期待される充足可能性(期待値1)または充足不可能性(期待値0)を示す。
  • 5つの手法を実装している:AlloyFLco(スペクトラムベース)、AlloyFLun(未充足コアベース)、AlloyFLsu(充足可能および未充足可能なテストの統合分析)、AlloyFLmu(ミューテーションベース)、AlloyFLhy(ミューテーションと未充足コアのハイブリッド)。
  • ミューテーションベースの故障局所化では、ASTノード(例:'&&'を'||'に変更)を変更して非同値なミューテントを生成し、テストの殺害回数を測定して、Ochiai式を用いて不審度スコアを計算する。
  • AlloyFLcoは、各ASTノードが関与する通過および失敗したテストの数に基づき、不審度式を用いて順位付けを行い、命令型コードにおけるスペクトラムベースの故障局所化と同様の手法を適用する。
  • AlloyFLunおよびAlloyFLsuは、失敗したテストからの未充足コア解析を用いて、充足不可能性に寄与するノードを特定する。AlloyFLsuは、さらに充足可能な失敗テストの分析も行う。
  • フレームワークは、自動テスト生成のためのMuAlloyおよびテスト実行のためのAUnitと統合されており、38個の実際の障害付きモデルおよび9,000個のミューテントモデルを用いた評価が可能になった。

実験結果

リサーチクエスチョン

  • RQ1制御フローと実行トレースが存在しない宣言的 Alloy モデルに、命令型コード向けに設計された故障局所化手法を適用可能か?
  • RQ2複数のテスト式を用いた場合、スペクトラムベース、SATベース、ミューテーションベースの故障局所化手法がAlloyモデルに対してどれほど効果的か?
  • RQ3ミューテーションベースの手法が、スペクトラムベースおよびSATベースの手法よりも、Alloyモデルにおける障害のあるASTノードを特定する際に優れた性能を示すか?
  • RQ4NNUD、NND、NNDWなどの新しい距離メトリクスは、Alloyにおける故障局所化の有効性をどれほど正確に反映しているか?
  • RQ5実際の手作業によるテストスイートが存在しない状況でも、自動生成されたテストスイートは故障局所化手法の信頼性ある評価を可能にするか?

主な発見

  • ミューテーションベースの故障局所化(AlloyFLmu)は、スペクトラムベース(AlloyFLco)およびSATベース(AlloyFLun、AlloyFLsu)の手法よりも、障害のあるASTノードを特定する際に顕著に優れた性能を示した。
  • ミューテーションベースの故障局所化でOchiai不審度式を用いることで、障害ノードの順位付けにおいて最高の正確性が達成された。
  • AlloyFLmuは、38個の実際の障害付きモデルのうち92.9%、9,000個のミューテントモデルのうち96.7%で障害を正しく局所化した。これは、優れた正確性を示している。
  • ミューテーションと未充足コア解析を統合したハイブリッド手法AlloyFLhyは、個別のSATベース手法よりも優れた性能を示した。
  • 提案された距離メトリクス(NNUD、NND、NNDW)は、トップ順位のASTノードが実際の障害からどれほど近いかを効果的に捉えており、評価における有効性が裏付けられた。
  • 結果から、特に微妙な仕様エラーを含む複雑なモデルでは、ミューテーションベースの手法が未充足コアやスペクトラムベースの手法よりも、より頑健で正確であることが示された。

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

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

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

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