Skip to main content
QUICK REVIEW

[論文レビュー] Open-ended Exploration of the Program Repair Search Space with Mined Templates: the Next 8935 Patches for Defects4J.

Matías Martínez, Martin Monperrus|arXiv (Cornell University)|Dec 11, 2017
Software Engineering Research被引用数 3
ひとこと要約

この論文では、抽出されたテンプレートを用いて超大規模な探索空間を探索するプログラム修復手法Cardumenを紹介する。77個のDefects4Jバグに対して、テストスイートに十分なパッチを8,935件発見し、記録更新を達成するとともに、以前に未知であった正しく動作するパッチを8件同定した。

ABSTRACT

In this paper our goal is to perform an open-ended exploration of the program repair search space. Our idea is to collect the largest number of test-suite adequate patches, independently of whether they are fully correct or overfitting. For that, we design Cardumen, a repair approach based mined templates that has an ultra-large search space. We evaluate the capacity of Cardumen to discover test-suite adequate patches (aka plausible patches) over the 356 real bugs from Defects4J by Just et al. (2014). Cardumen finds 8935 patches over 77 bugs of Defects4J. This is the largest number of automatically synthesized patches ever reported, all patches being available in an open- science repository. Moreover, Cardumen identifies 8 unique patches, that are patches for Defects4J bugs that were never repaired in the whole history of program repair.

研究の動機と目的

  • 正しいパッチにとどまらず、プログラム修復探索空間のオープンエンドな探索を実施すること。
  • 正しさや過学習の有無に関係なく、テストスイートに十分な(妥当な)パッチを可能な限り特定すること。
  • 実世界のDefects4Jバグに対して、以前に未知であった正しく動作するパッチを発見すること。
  • 研究再利用を可能にするために、すべての発見済みパッチをオープンサイエンスリポジトリに公開すること。

提案手法

  • Cardumenは、抽出されたテンプレートを用いて、膨大な数の構文的修復候補を生成する。
  • 既存のパッチからのコード断片を再結合することで、超大規模な探索空間を体系的に探索する。
  • 既存の修復データを活用し、共通する修復パターンを抽出・再利用するテンプレートとして利用する。
  • 正しさではなくテストスイートの達成度に基づいてパッチを検証することで、発見数を最大化する。
  • 量と多様性を重視するオープンエンドな戦略として設計されており、妥当なパッチの数を最適化する。
  • 生成されたすべてのパッチを収集し、再現可能性と再利用性を確保するためオープンリポジトリに公開する。

実験結果

リサーチクエスチョン

  • RQ1テンプレートベースのアプローチを用いて、Defects4Jベンチマークで最大何件のテストスイートに十分なパッチを発見できるか?
  • RQ2そのうち、プログラム修復の歴史において一度も生成されたことのない「新規」パッチはいくつあるか?
  • RQ3オープンエンドな探索戦略は、多様でかつ妥当な(可能性のある)パッチを同定できるか?
  • RQ4抽出されたテンプレートを用いて、実際に効果的に探索可能な修復探索空間の規模はどの程度か?
  • RQ5実世界のDefects4Jバグに対して、以前に未知であった正しく動作するパッチはいくつ存在するか?

主な発見

  • Cardumenは、356個のDefects4Jバグのうち77個に対して、合計8,935件のテストスイートに十分なパッチを発見した。
  • これは、1件の研究で報告された自動合成パッチの最大件数である。
  • プログラム修復の歴史において一度も生成されたことのない8件のユニークなパッチを同定した。
  • 発見されたパッチの大多数は妥当ではあるが、必ずしも正しくないことが示され、オープンエンド探索の価値が浮き彫りになった。
  • 発見されたすべての8,935件のパッチが、今後の研究用にオープンサイエンスリポジトリで公開されている。
  • 結果から、超大規模かつテンプレート駆動の修復空間探索の実現可能性と価値が示された。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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