問題

ソフトウェアのリファクタリングに関する記述として、適切なものはどれか。

ア)リファクタリングとは、外部から見た振る舞い(機能)を変えずに、プログラムの内部構造を改善する作業のことである。

イ)リファクタリングの主な目的は、新機能を追加することであり、既存のコード構造の改善は副次的な効果にすぎない。

ウ)リファクタリングを行う際は、テストコードの整備は不要であり、動作確認をせずに構造だけを変更してよい。

エ)リファクタリングとバグ修正は同一の作業であり、区別する必要はない。

解答・解説を見る

正解: ア)

解説:

  • ア)リファクタリングは、プログラムの外部から見た振る舞い(入力に対する出力結果などの機能)を変えることなく、可読性や保守性を高めるために、内部のコード構造を整理・改善する作業です。正解です。
  • イ)リファクタリングは新機能の追加を主目的とするものではなく、あくまで既存コードの構造改善(可読性・保守性の向上、重複コードの排除など)を目的とした作業です。「新機能の追加が主目的」は誤りです。
  • ウ)リファクタリングでは、振る舞いを変えていないことを確認するために、事前にテストコードを整備し、変更の前後でテストが通過することを確認しながら進めることが強く推奨されます。「テストコードの整備は不要」は誤りです。
  • エ)バグ修正は、プログラムの振る舞い(動作結果)を意図した正しいものに変更する作業であるのに対し、リファクタリングは振る舞いを変えずに内部構造のみを改善する作業であり、両者は目的が異なる別の作業として区別されます。「同一の作業」は誤りです。

重要キーワード

用語説明
リファクタリング外部の振る舞いを変えずに内部構造を改善する作業
可読性コードの読みやすさ・理解しやすさ
保守性ソフトウェアの修正・変更のしやすさ
テスト駆動開発テストコードを先に書きながら開発を進める手法