TDD
テストを先に書いてから実装するソフトウェア開発手法。設計と品質を同時に高める
TDD とは
TDD (Test-Driven Development、テスト駆動開発) は、実装より先にテストを書くソフトウェア開発手法だ。「まず満たすべき条件をテストとして書き、それを通すコードを書く」という順序を徹底する。テストを後付けする一般的な進め方と逆転させることで、設計の質とコードの信頼性を同時に高めることを狙う。
レッド・グリーン・リファクタリング
TDD は、短いサイクルを繰り返して進める。
| 段階 | 内容 |
|---|---|
| レッド | まず失敗するテストを書く |
| グリーン | テストを通す最小限のコードを書く |
| リファクタリング | 動作を保ったままコードを整理 |
この小さなサイクルを何度も回すことで、常にテストに守られた状態で、少しずつ確実に機能を作り上げていく。
なぜ設計が良くなるのか
テストを先に書くには、「このコードをどう使うか」を最初に考える必要がある。利用する側の視点で設計を始めるため、使いやすく、責務が明確なコードになりやすい。また、テストしにくいコードは設計に問題がある兆候として早期に気づける。TDD は単なるテスト手法ではなく、設計を駆動する手法でもある。
向き合い方の注意点
TDD は強力だが、万能でも必須でもない。何を作るか定まらない試行錯誤の段階や、UI のように振る舞いをテストしにくい領域では、無理に適用するとかえって非効率になる。また「テストを書くこと」自体が目的化し、価値の低いテストを量産しては本末転倒だ。重要なのは、壊れたら困る振る舞いを確実に守り、安心して変更できる状態をつくること。TDD はそのための有力な選択肢の一つであり、適材適所で取り入れるのが賢明だ。
考え方を学ぶには関連書籍が役立つ。
この記事は役に立ちましたか?
関連用語
関連する記事
テスト本ガイド - テスト設計を学べる技術書の選び方
テストの書き方からテスト戦略まで学べる技術書の選び方を紹介。テストピラミッド、TDD の正しい読み方、テストの ROI の考え方を解説します。
「動くコード」と「良いコード」の間にある本
コードが動くようになった後、次に何を学べばよいのか。「動くコード」を「良いコード」に変えるために必要な知識と、それを効率的に学べる本の選び方を解説します。
バグを生むのは知識不足ではなく想像力不足である
バグの多くは、コードを書いた時点で「こういうケースもありうる」と想像できなかったことが原因です。想像力を鍛える読書法と、エッジケースへの感度を高める方法を解説します。