自動テスト生成を用いたリファクタリング検出手法の提案
修士論文, 大阪大学
概要: リファクタリングとは,ソフトウェアの外部的な振る舞いを保ちつつ内部構造を変更する技術である.リファクタリングはソフトウェアの保守性を向上させるための重要な技術であり,これまでに様々な研究が行われている.その中の一つに,リファクタリング検出と呼ばれる研究がある.この研究は,異なる二つのバージョンのソースコードを入力として,バージョン間の差分情報からリファクタリングを検出する技術である.リファクタリング検出はソフトウェアの改善に関する実証研究等でも活用されている.しかし,これまでのリファクタリング検出の手法では,あらかじめ定義した構文パターンと一致するリファクタリングしか検出できない.そのため,未定義のリファクタリングパターンの検出は不可能であった.そこで,本研究では事前定義を必要としないリファクタリング検出の手法を提案する.具体的には,二つのバージョンのソースコードそれぞれからテストを自動生成し,生成されたテストをもう片方のバージョンのソースコードに対して実行する.どちらのテストも通過した場合はリファクタリングとして検出する.本手法を適用することで,事前に構文定義できないリファクタリングの検出において,従来手法を大幅に上回る80%以上の再現率を発揮した.また,リファクタリングが検出されたコミットのメッセージを解析し,リファクタリングの実施を示唆する新たな単語のパターンとして,``use,``stream,``reimplementを発見した.
@mastersthesis{古藤寛大2023,
author = {古藤 寛大},
title = {自動テスト生成を用いたリファクタリング検出手法の提案},
school = {大阪大学},
year = {2023},
month = {feb}
}