Skip to main content
QUICK REVIEW

[論文レビュー] Fault Localization Using Textual Similarities

Zachary P. Fry, Westley Weimer|arXiv (Cornell University)|Nov 13, 2012
Software Engineering Research参考文献 41被引用数 7
ひとこと要約

本論文は、バグレポートとソースコード間のテクスト類似度を用いてバグ局所化の検索空間を縮小する、言語に依存しない静的バグ局所化手法を提案する。レポートおよびコード内の自然言語(例:識別子、コメント、スタックトレース)を分析し、構造化ドキュメント類似度メトリクスを用いてソースファイルをランク付けすることで、650万行のコードを含む3つの大規模プログラムにおける5345件の実際のバグに対して、1件あたりの検査ファイル数を91.5%削減した。

ABSTRACT

Maintenance is a dominant component of software cost, and localizing reported defects is a significant component of maintenance. We propose a scalable approach that leverages the natural language present in both defect reports and source code to identify files that are potentially related to the defect in question. Our technique is language-independent and does not require test cases. The approach represents reports and code as separate structured documents and ranks source files based on a document similarity metric that leverages inter-document relationships. We evaluate the fault-localization accuracy of our method against both lightweight baseline techniques and also reported results from state-of-the-art tools. In an empirical evaluation of 5345 historical defects from programs totaling 6.5 million lines of code, our approach reduced the number of files inspected per defect by over 91%. Additionally, we qualitatively and quantitatively examine the utility of the textual and surface features used by our approach.

研究の動機と目的

  • ソフトウェア保守の高コストを軽減するため、バグ局所化の効率を向上させること。
  • ユーザーが報告するバグのトライアージングおよび局所化にかかる開発者の作業負荷を低減すること。
  • テストケース、コンパイル、実行トレースを必要としない、スケーラブルで言語に依存しない手法を開発すること。
  • バグレポートおよびソースコード内の自然言語特徴を活用して、局所化の正確性を向上させること。
  • 大規模で実際のソフトウェアシステムにおいて、テキスト類似度が故障関連コードファイルを特定するのに有効であることを実証すること。

提案手法

  • バグレポートおよびソースファイルを、自然言語コンテンツ(例:コメント、識別子、スタックトレース)に基づいて構造化ドキュメントとして表現する。
  • 項目の頻度(TF)および逆文書頻度(IDF)重み付けを用いて、バグレポートとソースファイル間の類似度を計算するドキュメント類似度メトリクスを適用する。
  • 類似度マッチングの粒度と関連性を向上させるために、ドキュメントをサブ構造(例:メソッド名、コメント、変数名)に分解する。
  • 類似度スコアに基づいてソースファイルをランク付けし、故障を含む可能性が最も高いファイルを優先順位付けする。
  • テストケース、実行トレース、動的解析を一切使用せず、静的構文的およびテクスチャ的特徴のみを用いる。
  • 類似度をベクトル空間モデルとして形式化し、レポートおよびコードテキストのTF-IDF重み付きベクトル間の類似度を計算する。

実験結果

リサーチクエスチョン

  • RQ1テストケースを必要とせずに、バグレポートおよびソースコード内の自然言語特徴を効果的に活用してバグを局所化できるか?
  • RQ2提案手法の類似度ベースのアプローチは、スタックトレース解析などのベースライン手法と比較して、検索空間をどの程度縮小できるか?
  • RQ3レポートの優先度や重複レポートの数といった要因が、バグ局所化モデルのパフォーマンスにどの程度影響を及えるか?
  • RQ4成功の主な要因が、仮説通りに自然言語アーティファクトにおける語の選択に起因しているとされるか?
  • RQ5軽量で静的かつ言語に依存しないアプローチが、実世界のシステムにおいて最先端のバグ局所化正確性を達成できるか?

主な発見

  • 提案手法は、3つの大規模プログラム(合計650万行のコード)における5345件の歴史的バグに対して、1件あたりの検査ファイル数を平均91.5%削減した。
  • ユーザーが報告したスタックトレースを用いるベースライン手法(検索空間を53.1%削減)よりも、本手法は優れた性能を示した。
  • モデルのパフォーマンスは、レポートの優先度や重複レポートの数に著しく影響を受けておらず、これらのメタデータ要因は局所化正確性の強力な予測因子ではないことが示された。
  • 成功の主な要因は、レポート作成者と開発者間の語の選択の共通性に起因しており、この共通語彙が効果的なバグ局所化を可能にするという仮説を支持する。
  • テストスイート、コンパイル、動的解析を一切必要とせず、最先端の性能を達成した。これは、実世界の保守シナリオにおいてスケーラビリティと実用性を示している。
  • 実証的評価により、実行トレースやテストケースが存在しない状況下でも、ソースコードおよびレポートの構造的テキスト分析が、高い正確性でバグ局所化を可能にすることが確認された。

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

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

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

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