テスト駆動開発(TDD)は、プログラムの品質向上と実装速度の向上を両立させるための開発スタイルです。TDDは、以下の「レッド・グリーン・リファクタリング」という3つのフェーズを非常に短いスパン(数分から数十分)で繰り返すことで進められます。まず「レッド(Red)」フェーズでは、これから実装したい機能のテストコードを記述し、実行して意図的に失敗させます。次に「グリーン(Green)」フェーズでは、テストを通過させるためだけの、最も単純な(時には定数を返すだけの)コードを書きます。これにより「仕様を満たすコードが動いた」という状態を作ります。最後に「リファクタリング(Refactor)」フェーズで、テストが合格する状態(安全ネットがある状態)を維持したまま、重複コードの排除や変数名の変更、設計の整理などを行います。TDDは、単なる「バグを見つけるテスト手法」ではなく、テストを通して「実装すべきコードの設計を考える設計手法」としての側面が非常に強いのが特徴です。
試験でのポイント