テスト駆動開発(TDD)
Test-Driven Development
てすとくどうかいはつ
他の資格での定義
実装コードを書く前にテストコードを先に作成し、テストが成功するように実装を進める開発手法。TDDとも呼ばれ、テスト→実装→リファクタリングのサイクルを短期間で繰り返す。
テストコードを先に書き、そのテストを通過する最小限のコードを実装し、その後リファクタリングを行うサイクルを繰り返す開発手法。TDDと略され、XPやDevOpsのプラクティスとして広く採用されている。
テストコードを先に書き、そのテストを通過する最小限のコードを実装し、リファクタリングするサイクルを繰り返す開発手法。Red(テスト失敗)→Green(テスト成功)→Refactor(リファクタリング)のサイクルで品質と設計を向上させる。
テストコードを先に書き、そのテストを通過するコードを実装する開発手法。Red(テスト失敗)→Green(テスト成功)→Refactor(リファクタリング)のサイクルを繰り返す。コードの品質向上とリグレッション防止に効果的。
関連キーワードの用語
条件の組み合わせと、それに対応する処理(アクション)を表形式で整理する技法。複雑な条件分岐をもれなく網羅的に記述でき、仕様の漏れや矛盾を発見するのに有効。テスト設計にも活用される。
内部構造を考慮せず、入力と出力の関係からテストケースを設計する手法。同値分割、境界値分析、デシジョンテーブル、状態遷移テストなどの技法がある。機能仕様に基づいてテストする。
プログラムの内部構造(制御フロー、データフロー)に基づいてテストケースを設計する手法。命令網羅、分岐網羅、条件網羅、パス網羅などのカバレッジ基準がある。ロジックの正確性を検証する。
個々のモジュールやクラスの機能を独立して検証するテスト工程。ドライバやスタブを用いて、テスト対象のモジュールを単独で動作させる。開発者が主体となって実施し、コードレベルの不具合を検出する。
ウォーターフォールモデルの各開発工程に対応するテスト工程を対に配置した開発モデル。要件定義に受入テスト、基本設計にシステムテスト、詳細設計に結合テスト、実装に単体テストが対応する。各工程の整合性を確保する。
プログラムの内部構造(ロジック、分岐、ループなど)に着目して行うテスト。命令網羅、分岐網羅などのカバレッジ基準を用い、すべての処理経路が正しく動作するか検証する。単体テストで主に用いられる。