テストケースに含まれる汎用アサーションに対する自動リファクタリング
卒業論文, 大阪大学
概要: ソフトウェアテストは,プロダクトの信頼性を保証するための重要な要素であり,通常のソースコードと同様に可読性と保守性が求められる.テスト内で実行結果を確認するアサート部では,可読性を下げる要因として,アサーションに間接的な表現を用いていることが挙げられる.例えば,assert(a != null).isTrue()は「aがnullでないという条件式の結果が真である」という間接的な表現である.間接的な表現は可読性の低下だけでなく,アサーション失敗時の原因特定能力の低下も招く.特に真偽値検証や同値検証のアサートメソッドは汎用性が高く,間接的な表現を招きやすい.そこで本研究では汎用的なアサーションから具体的なアサーションへの自動リファクタリングを提案する.3種類の汎用アサーションをリファクタリング対象として定義し,それら以外にも1種類をリファクタリング対象として定義する.提案手法では,定義したリファクタリング対象ごとに異なる自動リファクタリングを行う.評価実験として,1,557個のオープンソース開発プロジェクトで使われている実際のテストコードに対して適用実験を行った.その結果,提案手法によって対象の全プロジェクトから4,418箇所のリファクタリングに成功した.
@mastersthesis{野田拡志2025,
author = {野田 拡志},
title = {テストケースに含まれる汎用アサーションに対する自動リファクタリング},
school = {大阪大学},
type = {Bachelor's Thesis},
year = {2025},
month = {feb}
}