テスト駆動開発(TDD)
Test-Driven Development
てすとくどうかいはつ
他の資格での定義
実装コードを書く前にテストコードを先に作成し、テストが成功するように実装を進める開発手法。TDDとも呼ばれ、テスト→実装→リファクタリングのサイクルを短期間で繰り返す。
テストコードを先に書き、そのテストを通過する最小限のコードを実装し、その後リファクタリングを行うサイクルを繰り返す開発手法。TDDと略され、XPやDevOpsのプラクティスとして広く採用されている。
テストコードを先に書き、そのテストを通過する最小限のコードを実装し、リファクタリングするサイクルを繰り返す開発手法。Red(テスト失敗)→Green(テスト成功)→Refactor(リファクタリング)のサイクルで品質と設計を向上させる。
テストコードを先に書き、そのテストを通過する最小限のコードを実装し、リファクタリングするサイクル(Red-Green-Refactor)を繰り返す開発手法。設計の改善と品質の作り込みを同時に実現する。XPのプラクティスの一つ。
関連キーワードの用語
ウォーターフォールモデルの各開発工程と対応するテスト工程を V字型に対比させた開発モデル。要件定義に対して受入テスト、基本設計に対してシステムテスト、詳細設計に対して結合テスト、実装に対して単体テストが対応する。
テストの進行に伴うバグの累積検出数の推移をグラフ化したもの。S字カーブを描くのが理想的で、バグ検出が収束に向かう(曲線が寝る)段階でテスト完了の判断材料とする。ゴンペルツ曲線やロジスティック曲線で近似する。
ウォーターフォールモデルの各開発工程に対応するテスト工程を対に配置した開発モデル。要件定義に受入テスト、基本設計にシステムテスト、詳細設計に結合テスト、実装に単体テストが対応する。各工程の整合性を確保する。
プログラムの内部構造(ソースコード)に基づいてテストケースを設計するテスト手法。命令網羅、分岐網羅、条件網羅、パス網羅などのカバレッジ基準を用いる。組込みソフトウェアの単体テストで広く使用される。
プログラムの仕様に基づき、内部構造を考慮せずにテストケースを設計するテスト手法。同値分割、境界値分析、デシジョンテーブルなどの技法がある。システムテストや受入テストで使用される。
テストによってプログラムのどの部分が実行されたかを測定する分析手法。ステートメントカバレッジ(C0)、ブランチカバレッジ(C1)、条件カバレッジ(C2)、MC/DC(修正条件判定カバレッジ)などの基準がある。安全規格ではMC/DCが求められることがある。