開発技術
リファクタリングを実施するにあたって最も重要なこととして適切なものはどれか。
ア.リファクタリング前に新機能の要件を整理し、リファクタリングと同時に新機能を実装することで効率を最大化する。
イ.リファクタリング後のパフォーマンス向上を証明するために、必ず実行速度のベンチマーク測定を実施してから着手する。
ウ.外部から見た振る舞いが変わっていないことを確認するために、リファクタリング前後で自動テストが通ることを確認する。正解
エ.リファクタリングはソースコードの行数を削減することが最終目標であり、行数が増えるリファクタリングは実施すべきでない。
解説
リファクタリングは「建物の耐震補強工事」のようなもの。外から見た建物(機能)は変えずに内部の柱・骨格(コード構造)を強化します。工事中に「ちゃんと同じ建物か」を確認するのが自動テストの役割です。
なぜ ウ が正解か
リファクタリングの核心は「外部から見た振る舞いを変えない」ことです。この条件を安全に満たすためには、変更前後で自動テスト(ユニットテスト等)が全て通ることを確認しながら小さな変更を繰り返します。テストなしのリファクタリングはデグレード(バグの混入)リスクが高く、Kent Beckも「テストなしのリファクタリングはリファクタリングではない」と述べています。ウが正解です。
出典: AI生成問題(学習用)