Skip to main content
QUICK REVIEW

[論文レビュー] Program Repair: Automated vs. Manual

Quanjun Zhang, Yuan Zhao|arXiv (Cornell University)|Mar 10, 2022
Software Engineering Research被引用数 12
ひとこと要約

本研究は、20名の開発者と160件の修正タスクを対象とした大規模な人間実験を通じて、自動プログラム修復(APR)ツールと手動デバッグを比較した。APRツールはデバッグ時間の短縮と正しく修正されたバグの数の増加をもたらすが、しばしば低品質なパッチと誤解を招くレポートを生成するため、実用的導入のためには、とりわけレポートの明確さとフィードバックの質の向上が不可欠であることが示唆された。

ABSTRACT

Various automated program repair (APR) techniques have been proposed to fix bugs automatically in the last decade. Although recent researches have made significant progress on the effectiveness and efficiency, it is still unclear how APR techniques perform with human intervention in a real debugging scenario. To bridge this gap, we conduct an extensive study to compare three state-of-the-art APR tools with manual program repair, and further investigate whether the assistance of APR tools (i.e., repair reports) can improve manual program repair. To that end, we recruit 20 participants for a controlled experiment, resulting in a total of 160 manual repair tasks and a questionnaire survey. The experiment reveals several notable observations that (1) manual program repair may be influenced by the frequency of repair actions sometimes; (2) APR tools are more efficient in terms of debugging time, while manual program repair tends to generate a correct patch with fewer attempts; (3) APR tools can further improve manual program repair regarding the number of correctly-fixed bugs, while there exists a negative impact on the patch correctness; (4) participants are used to consuming more time to identify incorrect patches, while they are still misguided easily; (5) participants are positive about the tools' repair performance, while they generally lack confidence about the usability in practice. Besides, we provide some guidelines for improving the usability of APR tools (e.g., the misleading information in reports and the observation of feedback).

研究の動機と目的

  • 実世界のデバッグシナリオにおける最新の自動プログラム修復(APR)ツールと手動プログラム修復の有効性と効率性を評価すること。
  • APRが生成する修正レポートが、手動デバッグのパフォーマンスをどの程度向上させられるかを調査すること。
  • 開発者の視点から、特にパッチ品質とレポートの明確さに関して、APRツールにおける使いやすさの課題を特定すること。
  • 実際の開発ワークフローに組み込む際の実用性と導入促進に役立つ、実行可能なガイドラインを提示すること。

提案手法

  • Defects4Jベンチマークから抽出した8つの実際のバグを対象に、20名の参加者が160件の手動修正タスクを実施した制御実験を実施。
  • 異なる修復カテゴリに分類される最新のAPRツール3種を選定し、その修復レポートをデバッグ支援として使用。
  • バグとレポートの割り当てを自動化し、実験条件を一貫させるために、独自のプラットフォーム「MoocTest」を実装。
  • 修復時間、試行回数、パッチの正確性といった定量的データに加え、アンケートによる定性的フィードバックを収集。
  • 修復頻度、パッチ品質、レポートの使いやすさが開発者パフォーマンスに与える影響を分析。
  • 明確でないパッチや構造のないログフィードバックといった、観察された使いやすさの課題に基づき、実用的ガイドラインを提言。

実験結果

リサーチクエスチョン

  • RQ1自動的および手動的プログラム修復は、デバッグ時間、試行回数、パッチの正確性の観点で、どのように比較されるか?
  • RQ2APRツールは、実世界の環境において、手動プログラム修復の有効性をどの程度向上させられるか?
  • RQ3開発者がAPR生成レポートを使用する際に直面する使いやすさの課題は何か?
  • RQ4APRレポート内の誤ったまたは低品質なパッチが、開発者のデバッグ行動にどのような影響を与えるか?
  • RQ5修復レポートやフィードバックメカニズムにどのような改善を加えることで、開発者の信頼性と生産性が向上するか?

主な発見

  • 手動プログラム修復は、コード変更操作の頻度に影響を受ける。高い頻度は、非効率なデバッグ戦略を示唆する可能性がある。
  • APRツールは手動修復よりも顕著に速く、平均的なデバッグ時間を短縮するが、手動修復は試行回数が少なく、正確性の高い結果を出す。
  • APRツールを支援手段として使用することで、正しく修正されたバグの数は増加するが、誤ったまたは低品質なパッチを生成するリスクも高まる。
  • 開発者は、誤りである可能性があるが一見妥当に見えるAPRツールの提案に対して、確認に多くの時間を費やす。
  • APRツールのパフォーマンスに肯定的な評価を示す一方で、実際の運用ではレポートの使いやすさと信頼性に低い信頼感を示している。
  • ログ出力のフィードバックは、構造が不十分で、実行可能なデバッグヒントが欠如しているため、しばしば無視されがちであり、実行ログとパッチ提案の統合を改善する必要がある。

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

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

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

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