TDD
ティーディーディー

TDD(Test-Driven Development)とは、実装コードを書く前にテストを書き、テスト失敗(RED)→実装(GREEN)→リファクタリング(Refactor)の短いサイクルを繰り返す開発手法である。
RED → GREEN → Refactor
TDD の手順は極めてシンプルだ。
まず、これから実装する機能の期待動作をテストとして書く。当然テストは失敗する(RED)。次に、テストを通すための最小限のコードを書く(GREEN)。最後に、動作を変えずにコードを整理する(Refactor)。この3ステップを数分〜十数分の短いサイクルで回し続ける。
設計ツールとしてのテスト
TDD を「テスト手法」と捉えると本質を見誤る。テストを先に書くことで、関数のインターフェース(引数と戻り値)が実装前に決まる。呼び出し側の視点でAPIを設計するため、使いにくいインターフェースが生まれにくい。Kent Beck が TDD を提唱した動機も、テスト網羅率の向上ではなく設計品質の改善にあった。
単体テストとの使い分け
TDD で書くテストの大半は単体テストになる。ただし TDD は「いつテストを書くか」の方法論であり、単体テストは「何をテストするか」のスコープの話だ。TDD のサイクル内で機能テスト相当のテストを書くこともあるし、TDD を使わずに単体テストを書くこともある。
ATDD との補完関係
ATDD がビジネス要件の正しさを外側から保証するのに対し、TDD は内部実装の正しさを内側から積み上げる。プロジェクト全体では、ATDD で受け入れ基準を定義し、その基準を満たすための個々の関数を TDD で実装していくという二層構造が理想的だ。
この用語を扱う記事
- ATDD(受け入れテスト駆動開発)の実装ステップ:BDD・TDDとの違いと導入パターンATDDの実装ステップを解説。BDD・TDDとの使い分け、導入パターン、チームへの段階的な導入方法まで、QAエンジニア向けの実践ガイド。
- Eval-Driven Development(EDD)とは?評価ファーストで作るAI開発プロセス勘に頼らず評価指標をサイクル全体に組み込むEDDの考え方と、プロンプト・パラメータを自動調整する実践手順を解説します。
- PoC失敗の原因と事例から学ぶ防止策:AI導入を仕様駆動開発(SDD)と受け入れテスト駆動開発(ATDD)で設計するAI導入のPoCが失敗する原因は、出力が一定しない・性能がデータで決まる・合否の線がないというAI特有の性質を企画段階で扱わないことにあります。よくある失敗事例のパターンと、仕様駆動開発(SDD)で検証範囲を固定し、受け入れテスト駆動開発(ATDD)で合否を着手前にテストにする方法、着手前のチェックリストを解説します。
関連用語

E2Eテスト
E2E テスト(End-to-End テスト)とは、ユーザーの操作を起点にブラウザや API を通じてシステム全体を通過させ、期待どおりの結果が得られるかを検証するテスト手法である。

受け入れテスト
受け入れテスト(アクセプタンステスト)とは、開発した機能がビジネス要件やユーザーストーリーを満たしているかを、プロダクトオーナーやステークホルダーの視点で検証するテスト手法である。

SSM(AWS Systems Manager)
AWS Systems Manager(SSM)とは、EC2 インスタンスやオンプレミスサーバーをまとめて運用・管理するための AWS マネージドサービスである。パッチ適用、コマンド実行、パラメータ管

ATDD
ATDD(Acceptance Test-Driven Development)とは、開発着手前に受け入れテストの基準をチーム全体で定義し、そのテストを自動化してから実装を進める開発手法である。


