本論文では,既存のAPRツールをJava向けに再実装したプログラム群を紹介している.
再実装の目的として,新しいAPRツールの実験を行う際の比較用であると説明している. 例えばAPRのブレイクスルーとなったGenProgはOCamlで実装されており,C向けのツールとして開発されている. しかし,ソフトウェア工学界隈ではJavaを使った研究が多く,Java向けに再実装するのは確かに収容だと感じた.
論文発表当時では以下の既存ツールの再実装を行なっている.
簡単に説明すると,GenPorgは遺伝的アルゴリズムを基に生成と検証を繰り返してバグの修正を試みる. 事前に欠陥箇所の限局を行なったのち,疑惑値が高い箇所に対して,プログラム文の挿入,削除,あるいは置換を行う. 生成したプログラムの中からテストの通過率が高いものを選択し,それに対して繰り返し操作を行う.
KaliはGenProgで行う操作のうち,プログラム文の削除に特化したAPRツールである. GenProgに比べると実行時間が短いのが特徴である.
MutRepairは,疑惑値が高い箇所の内,条件文のみを修正する. 条件文中の>や,==,||などを置換する.
ASTORはそれぞれのツールをjGenProg,jKali,jMutRepairとして実装している. jGenProgはGenProgの改良,jKaliはKaliの純粋な再実装,jMutRepairはMutRepairの一部の実装であると説明している. jGenProgでは,プログラムの再利用候補の範囲を指定できるように改良している. GenProgでは再利用候補はプログラム全体を対象としているが,実行時間が増加してします. 筆者らは過去に再利用候補の範囲と修正についての研究を発表しており,jGenProgの実装は妥当であると結論づけている.
提案ツールは学術的な面での新規性はないが,3つAPRツールを実装し直すだけの実装力があるのは凄いし羨ましいと思った.