Skip to main content
QUICK REVIEW

[論文レビュー] Causal testing: understanding defects' root causes

Brittany Johnson, Yuriy Brun|arXiv (Cornell University)|Jun 27, 2020
Software Engineering Research参考文献 74被引用数 17
ひとこと要約

因果テストは、反事後的因果関係を用いて、ソフトウェア欠陥の真の原因を明らかにする実行を同定する、新しい根本原因分析手法である。Defects4J上で評価された結果、開発者が根本原因を特定できた割合が、標準ツールの80%から86%に向上した。これはデバッグ効率の顕著な向上を示している。

ABSTRACT

Understanding the root cause of a defect is critical to isolating and repairing buggy behavior. We present Causal Testing, a new method of root-cause analysis that relies on the theory of counterfactual causality to identify a set of executions that likely hold key causal information necessary to understand and repair buggy behavior. Using the Defects4J benchmark, we find that Causal Testing could be applied to 71% of real-world defects, and for 77% of those, it can help developers identify the root cause of the defect. A controlled experiment with 37 developers shows that Causal Testing improves participants' ability to identify the cause of the defect from 80% of the time with standard testing tools to 86% of the time with Causal Testing. The participants report that Causal Testing provides useful information they cannot get using tools such as JUnit. Holmes, our prototype, open-source Eclipse plugin implementation of Causal Testing, is available at http://holmes.cs.umass.edu/.

研究の動機と目的

  • ソフトウェア欠陥の根本原因を特定するという課題に取り組むこと。これは効果的なデバッグに不可欠である。
  • バグの診断に費やす開発者の時間と労力を減らすために、標的化された因果実行トレースを提供すること。
  • JUnitのような標準テストツールでは得られない因果的インサイトを明らかにする手法を開発すること。
  • 実世界のソフトウェア欠陥を用いた実証的ベンチマークを用いて、因果分析の有効性を評価すること。

提案手法

  • 反事後的因果関係理論を適用し、プログラム実行を分析して欠陥の背後にある因果要因を同定する。
  • 欠陥の有無にのみ差があるように、実行の集合を生成することで因果変数を隔離する。
  • 因果分析を開発ワークフローに統合するために、プロトタイプのEclipseプラグイン「Holmes」を用いる。
  • 欠陥を引き起こすか防止するかする最小限の条件の集合を同定するために実行を分析する。
  • デバッグに最も関連する因果的情報を明らかにする実行を優先順位付けする。
  • 実行を比較して因果的差異を特定するためのトレース分析技術を採用する。

実験結果

リサーチクエスチョン

  • RQ1因果テストは、標準テストツールよりも実世界のソフトウェア欠陥の根本原因をより効果的に特定できるか?
  • RQ2因果テストは、従来のデバッグ手法と比較して、開発者の正確性においてどのように異なるか?
  • RQ3JUnitのような標準ツールでは得られない、因果テストが提供する因果的情報の種類は何か?

主な発見

  • 因果テストは、Defects4Jベンチマークの71%の実世界の欠陥に適用可能であった。
  • 適用可能な77%の欠陥において、因果テストは開発者が根本原因を特定するのを支援した。
  • 制御実験において、因果テストを用いた開発者は86%のケースで根本原因を特定した。これは標準ツールを用いた場合の80%から向上した。
  • 参加者らは、JUnitや類似ツールでは得られないインサイトを因果テストが提供したと報告した。
  • オープンソースのEclipseプラグインであるHolmesプロトタイプは、因果テストを実際の開発環境に統合することに成功した。
  • この手法は実用的妥当性を示し、デバッグ効率に測定可能な向上をもたらした。

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

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

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

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