テスト駆動開発 【TDD】 Test-Driven Development / テストドリブン開発

概要

テスト駆動開発(TDD)とは、ソフトウェア開発の手法の一つで、プログラム本体より先にテストコードを書き、そのテストに通るように本体のコードを記述していく方式。

テストファースト」(test first)と呼ばれる原則に従って開発を進めていく手法で、まずプログラムの機能や仕様に基づいて、そのプログラムが通るべきテスト条件やテストコードを記述していく。実装すべきプログラムができていないため、この段階でテストを行うと必ず失敗する。

テストができたら、そのテストに合格する最低限のコードで構成されるプログラムを実装する。この段階では、本来の処理を行わず条件を満たす定数を記述したり、同じコードを何度も重複させるなど、どんな方法を使っても良いのでとにかくテストを通るプログラムを作る。最後に、テストに通ることを確認しながらコードの重複などを取り除き、明快で洗練されたコードに書き換えていく。この工程を「リファクタリング」(refactoring)という。

何度も繰り返し大量のテストを実施する必要があるため、よほど小規模でない限り手動でテストを行うのは現実的はなく、テストツールやフレームワークなど何らかのテスト自動化環境を用意してから開発に取り掛かるのが一般的である。

開発の途上でも常に仕様上満たすべきテストを通過させながら先に進めていくため、後の工程で誤りが発覚して開発のやり直し(手戻り)が起きることを防げる。その特性上、セキュリティソフトやGUI操作のソフト、並列処理を行うプログラム、開発ツールが自動生成するコードなどには適用しにくいとされる。

(2020.7.31更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。