JavaのAPRを複数のベンチマークで再現実験しました論文
これまでに様々なAPRが提案されて来ている. また,それに合わせて様々な追試が行われている. 追試の内容は,APRが生成したパッチは開発者に受け入れられるかどうかを主眼に置いたものが多い. 一方,既存の論文では一つのベンチマークでしか実験していないものが多く,ベンチマークを主眼にした追試はなされていなかった.
そこでこの論文では,公開されている11種類のJavaのAPRを,公開され,レビューもされているデータセット5種類に対して実行し,それぞれのデータセットでのバグの修正可能性を確認する(あくまで複数のデータセットでの結果を比較するのであって,APR自体を比較するのではない). また,実験を行いやすいように,APRとデータセットを抽象化するフレームワークも提供している.
実験結果から,実験対象のAPRは全てDefects4Jにオーバーフィットしている(= それ以外のベンチマークでは修正率は低い)ことが分かった. 原因としては,例えばベンチマークの一つに学生が作成したソースコードのバグを集めたものがあるが,ソースコードの規模が大きくないので,再利用に基づくAPRでは再利用候補が少ないことが一つの理由として挙げられている. また修正に失敗した結果もまとめている. 理由として大きいのはFLが上手くいっていないことと,複数個所の修正が難しいことが挙げられる. また,失敗した理由としてコマンドラインでの実行時引数があまりにも多すぎて入力制限に引っかかったというのは面白い結果だった.