テスト駆動開発
読み
てすとくどうかいはつ
意味
- 実装コードを書く前に失敗するテストを先に作成しそのテストを通すための最小限のコードを書く開発手法でTDDとも呼ばれる
- Red(失敗するテスト作成)・Green(テストを通す実装)・Refactor(リファクタリング)のサイクルを繰り返す
- 要件を明確にしバグの早期発見・設計の改善・リグレッション防止など複数のメリットがあるアジャイル開発と相性が良い手法
比喩
建築で設計図を先に作ってから工事を始めるようなもの。完成形を明確にしてから作業を開始し完成度を確認しながら進める。
語源
Test-Driven Development = テスト駆動開発。Kent Beckが提唱しTDDと略される
例文
- TDDで先に失敗するユニットテストを書き最小限のコードで通した後にリファクタリングして品質を高めた
- テスト駆動開発を導入しバグの早期発見とリグレッション防止を実現しコードの保守性が大幅に向上した
- Red-Green-Refactorサイクルを回すことで要件を明確化しながら段階的に実装を進めている
よくある勘違い
- すべてのコードでTDDが必要だと思うこと → UIや探索的な実装では適さない場合もある
- テストを書けばTDDだと思うこと → テストファーストとリファクタリングのサイクルが重要
- 100%カバレッジを目指すこと → 重要な部分に集中しコストと効果のバランスを考えるべき