Skip to main content
QUICK REVIEW

[論文レビュー] FixEval: Execution-based Evaluation of Program Fixes for Programming Problems

Md Mahim Anjum Haque, Wasi Uddin Ahmad|arXiv (Cornell University)|Jun 15, 2022
Software Engineering Research被引用数 5
ひとこと要約

FixEvalは、実際の競技プログラミングの提出物を対象とした実行ベースのテストを用いて、プログラム修復モデルを評価するための新しいベンチマークを導入している。実行ベースの評価が、生成された修正の機能的正しさを評価する際、従来の類似度ベースのメトリクスを上回ることを示している。データセットには、PythonおよびJavaで記述された700の問題が含まれており、単体テスト、実行時間・メモリ制限、評価結果フィードバック(例:誤り、コンパイルエラー)を備え、モデルが生成するパッチの堅牢な評価を可能にしている。

ABSTRACT

The complexity of modern software has led to a drastic increase in the time and cost associated with detecting and rectifying software bugs. In response, researchers have explored various methods to automatically generate fixes for buggy code. However, due to the large combinatorial space of possible fixes for any given bug, few tools and datasets are available to evaluate model-generated fixes effectively. To address this issue, we introduce FixEval, a benchmark comprising of buggy code submissions to competitive programming problems and their corresponding fixes. FixEval offers an extensive collection of unit tests to evaluate the correctness of model-generated program fixes and assess further information regarding time, memory constraints, and acceptance based on a verdict. We consider two Transformer language models pretrained on programming languages as our baseline and compare them using match-based and execution-based evaluation metrics. Our experiments show that match-based metrics do not reflect model-generated program fixes accurately. At the same time, execution-based methods evaluate programs through all cases and scenarios designed explicitly for that solution. Therefore, we believe FixEval provides a step towards real-world automatic bug fixing and model-generated code evaluation. The dataset and models are open-sourced at https://github.com/mahimanzum/FixEval.

研究の動機と目的

  • 実世界の文脈における自動プログラム修復モデルを評価するための包括的なベンチマークの不足に対処すること。
  • 単体テスト、実行時間・メモリ制限、実行評価結果を備えたバグあり・修正済みプログラムペアのデータセットを提供し、正確な評価を可能にすること。
  • 生成されたコード修正の評価において、類似度ベースのメトリクスと実行ベースのメトリクスを比較すること。
  • 実行ベースの評価が、従来の類似度メトリクスよりも機能的正しさをよりよく反映していることを示すこと。
  • 今後のコード修復、コード補完、フィードバック駆動型モデル学習に関する研究を支援すること。

提案手法

  • AtCoderおよびAizu Online Judgeから、PythonおよびJavaで記述されたバグありおよび正常に動作するソリューションを含む700の競技プログラミング問題を収集する。
  • 各問題に対して25個の単体テストを含め、生成された修正の機能的正しさを評価する。
  • 実行時間およびメモリ制限と、実行評価結果(例:誤答、コンパイルエラー)をモデルの入力文脈として統合する。
  • FixEvalデータセット上で微調整した、事前学習済みのシーケンス・ツー・シーケンスモデル(PLBARTおよびCodeT5)を用いてプログラム修復を行う。
  • 生成出力の評価を、類似度ベースのメトリクス(例:BLEU、CodeBLEU)と、テストスイートの実行による実行ベースのメトリクスの両方を用いる。
  • デコード戦略(グリーディ、ビームサーチ、ヌクレアスサンプリング)および評価結果情報が修正品質に与える影響を分析する。

実験結果

リサーチクエスチョン

  • RQ1生成されたプログラム修正の正しさを評価する際、類似度ベースのメトリクスと実行ベースのメトリクスのどちらが優れているか。
  • RQ2評価結果情報(例:誤答、コンパイルエラー)へのアクセスが、生成された修正の品質をどの程度向上させるか。
  • RQ3異なるデコード戦略(グリーディ、ビームサーチ、ヌクレアスサンプリング)は、FixEvalにおけるプログラム修復モデルのパフォーマンスにどのように影響するか。
  • RQ4実行時間・メモリ制限およびテストケースフィードバックを含むモデルの入力文脈が、修正生成の正確性に与える影響は何か。
  • RQ5タスクの難易度および修正類似度は、自動プログラム修復モデルのパフォーマンスにどのように影響するか。

主な発見

  • 単体テストを用いた実行ベースの評価は、BLEU や CodeBLEU などの類似度ベースのメトリクスよりも、機能的正しく修正されたコードを識別する上で顕著に優れている。
  • 評価結果情報(例:誤答)が提供されたモデルは、情報なしのモデルよりも正確で文脈に即した修正を生成する。
  • ビームサーチデコードは、グリーディデコードやヌクレアスサンプリングを常に上回るが、性能向上は限定的である。
  • 評価結果を入力に含むモデルは、構文的に正しくても意味的に誤ったコードを追加するのを回避し、修正のノイズを低減する。
  • FixEvalは、複雑さの制約やエッジケースを含む、現実世界の修復課題を捉えており、実用的なプログラム修復システムの評価に適している。
  • ベンチマークは、一部の修正は単純である一方で、多くの修正は論理的および制約的理解を必要とすることを明らかにし、包括的な評価の必要性を強調している。

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

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

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

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