Skip to main content
QUICK REVIEW

[論文レビュー] ASTOR: Evolutionary Automatic Software Repair for Java

Matías Martínez, Martin Monperrus|arXiv (Cornell University)|Oct 24, 2014
Software Testing and Debugging Techniques参考文献 11被引用数 6
ひとこと要約

ASTOR は、Java における進化的な自動ソフトウェア修復を実装するオープンソースで拡張可能なフレームワークであり、GenProg、PAR のテンプレートの一部、および遺伝的プログラミングとテスト・スイート検証を用いた変異テストベースのアプローチを実装している。共有された故暲局所化、修復検証、および拡張可能なコンポONENTを提供することで、GPL v2 ライセンスのもとで、修復手法の再現可能で比較可能な評価を可能にする。

ABSTRACT

Context: During last years, many automatic software repair approaches have been presented by the software engineering research community. According to the corresponding papers, these approaches are able to repair real defects from open source projects. Problematic: Some previous publications in the automatic repair field do not provide the implementation of theirs approaches. Consequently, it is not possible for the research community to re-execute the original evaluation, to set up new evaluations (for example, to evaluate the performance against new defects) or to compare approaches against each others. Solution: We propose a publicly available automatic software repair tool called Astor. It implements three state-of-the-art automatic software repair approaches in the context of Java programs (including GenProg and a subset of PAR's templates). The source code of Astor is licensed under the GNU General Public Licence (GPL v2).

研究の動機と目的

  • 自動ソフトウェア修復分野における再現性の危機に対処するため、修復手法の公開済みでオープンソースの実装を提供すること。
  • 複数の最先端の修復アプローチにおいて、故暲局所化と修復検証を統一し、一貫した評価を可能にすること。
  • 研究者が共通でモジュラーなフレームワークを用いて、既存の修復手法を比較・拡張・再評価できるようにすること。
  • テストケースの優先順位付けやコード再利用戦略(例:ローカル vs. グローバル)などのカスタマイズ可能なコンポONENTを通じた拡張性を支援すること。
  • 修復ロジックをコアの進化的計算およびテストインfraストラクチャから分離した、再利用可能で汎用的なフレームワークを提供すること。

提案手法

  • ASTOR は、Spoon ライブラリを介して抽象構文木(AST)レベルでのソースコード変換を適用することで、遺伝的プログラミングを用いてプログラムバージョンを進化させる。
  • 各世代で親バージョンに対して変換を適用して子バージョンを生成する、プログラムバージョンの集合(プール)を維持する。
  • 適合度は失敗するテストケースの数に基づいて評価され、すべてのテストが成功する(すなわち、0件の失敗テスト)ことが目標である。
  • 統一された故暲局所化モジュールは、Ochiai 公式を用いて不審なステートメントのスコアを計算し、重み付きランダム選択により変換対象の不審なステートメントを選択する。
  • 修復検証には、失敗したテストケースと以前に成功したテストケースの両方を実行し、正しさとレグレッションの安全性を確認する。
  • テストケースの優先順位付けやコード再利用戦略(例:ローカル vs. グローバル)などのプラグイン可能なコンポONENTを通じて、拡張性を支援する。

実験結果

リサーチクエスチョン

  • RQ1統一的でオープンソースのフレームワークは、自動ソフトウェア修復研究における再現性と比較可能性を向上させることができるか?
  • RQ2同じフレームワーク内で多様な修復アプローチにわたって、共有された故暲局所化手法(Ochiai 公式)はどの程度有効か?
  • RQ3共通の修復検証パイプラインは、異なる修復戦略において正しさを保証し、レグレッションを防止するのにどの程度効果的か?
  • RQ41つのフレームワークに複数の修復手法(GenProg、PAR テンプレート、変異ベース)を統合することで、保守性と拡張性にどのような影響を与えるか?
  • RQ5不審なステートメントのための代替ナビゲーション戦略を含む、カスタマイズ可能な修復ワークフローをフレームワークがサポートできるか?

主な発見

  • ASTOR は、GenProg、PAR のテンプレートの一部、および変異テストベースの手法という、3つの最先端の修復アプローチを、1つの再利用可能なフレームワーク内で成功裏に実装した。
  • フレームワークは、故暲局所化に Ochiai 公式、不審なステートメントの選択には重み付きランダム戦略を用いることで、すべての修復手法に一貫性を確保した。
  • ASTOR 内のすべての修復アプローチは、同じテスト・スイートベースの検証パイプラインを共有しており、正しさ(失敗したテストの合格)とレグレッションの安全性(以前に合格したテストの合格)の両方を確認する。
  • ソースコードは、https://github.com/SpoonLabs/astor で GPL v2 ライセンスのもとで公開されており、完全な再現性とコミュニティによる拡張が可能である。
  • ASTOR のモジュラーなアーキテクチャにより、テストケースの優先順位付けやカスタムコード再利用戦略の統合など、コアの修復ロジックを変更せずに拡張が可能である。
  • 故暲局所化と検証の統一により、同じベンチマーク上で異なる修復手法の公平な比較と一貫した評価が可能になった。

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

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

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

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