テスト駆動開発(TDD)は、プログラムの品質向上と実装速度の向上を両立させるための開発スタイルです。TDDは、以下の「レッド・グリーン・リファクタリング」という3つのフェーズを非常に短いスパン(数分から数十分)で繰り返すことで進められます。まず「レッド(Red)」フェーズでは、これから実装したい機能のテストコードを記述し、実行して意図的に失敗させます。次に「グリーン(Green)」フェーズでは、テストを通過させるためだけの、最も単純な(時には定数を返すだけの)コードを書きます。これにより「仕様を満たすコードが動いた」という状態を作ります。最後に「リファクタリング(Refactor)」フェーズで、テストが合格する状態(安全ネットがある状態)を維持したまま、重複コードの排除や変数名の変更、設計の整理などを行います。TDDは、単なる「バグを見つけるテスト手法」ではなく、テストを通して「実装すべきコードの設計を考える設計手法」としての側面が非常に強いのが特徴です。
試験では、TDDの開発手順やサイクルが正しく理解できているかが問われます。特に「最初にテストを作成する(テストファースト)」という順序や、テストが成功している状態(Green)で初めてリファクタリングを行うというルールが狙われます。また、TDDによって開発者が得られるメリットとして、「テストが自動化されているため、後からコードを変更・追加した際のリグレッション(デグレード:先祖返り)を即座に検知できる」「設計が自然とシンプルで疎結合になる」といった点が正解の選択肢としてよく登場します。
XP(エクストリームプログラミング)の代表的な技術プラクティスの一つであり、コードの内部改善を行うリファクタリングや、テストの自動実行を支援するCI/CD、バージョン管理などと合わせて理解すると効果的です。