Skip to main content
QUICK REVIEW

[論文レビュー] IBIR: Bug Report driven Fault Injection

Ahmed Khanfir, Anil Koyuncu|arXiv (Cornell University)|Dec 11, 2020
Software Testing and Debugging Techniques参考文献 64被引用数 6
ひとこと要約

iBiR は、ユーザーが報告したバグレポートからコード修復テンプレートを逆引きすることで、現実的で標的型のソフトウェアバグを生成するフォールトインジェクションツールであり、実際の欠陥を模倣する高精度なフォールトを注入可能である。従来のマテュレーションテストと比較して、実際のバグとのフォールト結合率が50倍以上高く、36%の高い一致率を達成した一方で、元のバグと高い意味的類似性を維持している。

ABSTRACT

Much research on software engineering and software testing relies on experimental studies based on fault injection. Fault injection, however, is not often relevant to emulate real-world software faults since it "blindly" injects large numbers of faults. It remains indeed challenging to inject few but realistic faults that target a particular functionality in a program. In this work, we introduce IBIR, a fault injection tool that addresses this challenge by exploring change patterns associated to user-reported faults. To inject realistic faults, we create mutants by retargeting a bug report driven automated program repair system, i.e., reversing its code transformation templates. IBIR is further appealing in practice since it requires deep knowledge of neither of the code nor the tests, but just of the program's relevant bug reports. Thus, our approach focuses the fault injection on the feature targeted by the bug report. We assess IBIR by considering the Defects4J dataset. Experimental results show that our approach outperforms the fault injection performed by traditional mutation testing in terms of semantic similarity with the original bug, when applied at either system or class levels of granularity, and provides better, statistically significant, estimations of test effectiveness (fault detection). Additionally, when injecting 100 faults, IBIR injects faults that couple with the real ones in 36% of the cases, while mutants from mutation testing inject less than 1%. Overall, IBIR targets real functionality and injects realistic and diverse faults.

研究の動機と目的

  • コードベース全体に無差別に構文的変異を注入する従来のフォールトインジェクション手法に起因する現実性の欠如を是正すること。
  • 実際のユーザー報告バグとその修復パターンに焦点を当てることで、フォールトの代表性を向上させること。
  • バグレポートに記載された特定の機能に焦点を当てることで、フォールトインジェクションのコストを低減し、関連性を高めること。
  • システムのコードやテストスイートに関する深い知識が不要な、実用的で低コストのフォールトインジェクション手法を提供すること。

提案手法

  • iBiR は情報検索(IR)ベースのフォールトロケーションを用いて、指定されたバグレポートに言及されたコード場所を特定する。
  • Nopol などの修復システムから修復テンプレートを逆引きし、実際の修正を模倣する現実的なフォールトパターンを生成する。
  • これらの修復変換を逆方向に再適用することでフォールトをインジェクションし、実際のバグを模倣するミューテントを生成する。
  • 実際のバグ修正における頻度と位置に基づいてフォールトパターンの優先順位を設定することで、多様性と現実性を確保する。
  • システムまたはクラスレベルの粒度で動作し、1件のターゲットバグレポートあたり100のフォールトをインジェクションすることで、統計的信頼性を確保する。
  • ソースコードやテストスイートへのアクセスを必要とせず、バグレポートのみで動作するため、広範な適用性を有する。

実験結果

リサーチクエスチョン

  • RQ1バグレポートに基づくフォールトインジェクションは、従来のマテュレーションテストと比較して、実際のフォールトとより高い意味的類似性を持つミューテントを生成できるか?
  • RQ2iBiR がインジェクションしたフォールトは、実際のフォールトとどの程度関連しているか(同一のテストケースで検出されるか)?
  • RQ3iBiR は、従来のマテュレーションテストと比較して、テスト効果性(フォールト検出)の推定をより正確に行えるか?
  • RQ4iBiR は、システムのコードやテストスイートに関する深い知識がなくても、多様で現実的なフォールトを生成できるか?

主な発見

  • iBiR は、実際のフォールトとの中央値意味的類似度が 0.58 を達成したが、従来のマテュレーションテストでは 0.0 に留まった。
  • iBiR がインジェクションしたフォールトは 36% のケースで実際のフォールトと関連していたが、従来のマテュレーションテストでは 1% 未満であった。
  • iBiR のフォールト結合率は、マテュレーションテストの約 50 倍であり、実際のフォールト挙動と強い整合性を示している。
  • iBiR は、フォールト検出率を測定することで、テスト効果性の推定において統計的に有意な改善をもたらした。
  • システムの知識が最小限で、バグレポートのみに依存する現実的なフォールトインジェクションが可能である。
  • iBiR のアプローチは制御された実験を可能とし、実証的ソフトウェア工学研究における実際のフォールトの代替として有効である。

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

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

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

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