テスト駆動開発(TDD)とは?てすとくどうかいはつ
テスト駆動開発(TDD)とは、実装より先に失敗するテストコードを書き、それを通す最小限の実装を書き、重複を除いて整理する、という短い周期を繰り返す開発手法。レッド(失敗)・グリーン(成功)・リファクタリングの3段階で回す。使う側のコードを先に書くことになるため、外から扱いやすいインタフェースが自然に決まるという副次効果がある。
最終更新:2026-10-06
この語が出る過去問を解く →背景
実装の後にテストを書くと、できあがったコードを通すためのテストになりやすく、そもそもテストしにくい作りになっていても直す動機が働かない。また改善のためにコードへ手を入れたくても、壊していないことを確かめる手段がなければ触れず、設計は劣化したまま固まる。テストを先に置くのはこの2つを同時に解く手で、シラバスではXPのプラクティスとして、またDevOpsを支える実践として挙げられている。
具体例
提唱者はケント・ベックで、XPのプラクティスとして示し、同じ流れからJUnitが生まれた。送料計算なら、まず「1万円以上は無料」を検証するテストを書いて失敗させ、その条件だけをべた書きして通し、次のケースを足しながら一般化していく。テストが常に揃っているので、後からの内部構造の作り替えを動作の保証付きで進められる。
試験での引っ掛け
TDDの主眼は品質保証よりも設計の改善に置かれている。同値分割や境界値分析のような網羅性を狙うテスト設計とは目的が別で、TDDを回しているだけではテストの十分性は担保されない。また「先にテスト仕様書を作ること」と読み替えるのも誤りで、書くのは実行できるテストコードであり、失敗することを確かめてから実装に入る点までが手順に含まれる。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 春期 応用情報技術者試験 午前 問50(IPA)
エクストリームプログラミング(XP:eXtreme Programming)における“テスト駆動開発”の説明はどれか。
正解:プログラムを書く前にテストケースを作成すること
要点:テスト駆動開発は実装より先にテストを書く進め方
テスト駆動開発は、実装より先にテストケースを書き、そのテストが通るようにコードを書き進める手法である。仕様をテストの形で先に確定させるため、実装の目的が明確になり、修正時の安全網にもなる。
出典:令和4年度 秋期 応用情報技術者試験 午前 問49(IPA)
エクストリームプログラミング(XP:Extreme Programming)における“テスト駆動開発”の特徴はどれか。
正解:プログラムを書く前にテストコードを記述する。
要点:テスト駆動開発はコードより先にテストを書く
テスト駆動開発(TDD)は、実装より先に「その機能が満たすべき条件」をテストコードとして書き、それを通すように最小限の実装を進める手法です。テストが仕様書の役割を果たすため、設計が明確になりリファクタリングもしやすくなります。
出典:令和4年度 秋期 応用情報技術者試験 午前 問50(IPA)
スクラムのスプリントにおいて、(1)〜(3)のプラクティスを採用して開発を行い、スプリントレビューの後にKPT手法でスプリントレトロスペクティブを行った。“KP…
正解:次のスプリントからは、スタンドアップミーティングにタイムキーパーを置き、終了5分前を知らせるようにする。
要点:KPTのTは次に試す改善策を挙げる欄
KPTはKeep(今後も続けること)、Problem(問題点)、Try(次に試すこと)の3つで振り返る手法です。Tには、明らかになった問題を踏まえて次のスプリントで新たに実施する改善策を挙げます。タイムキーパーを置くという具体的な改善案がこれに当たります。
出典:令和7年度 春期 応用情報技術者試験 午前 問48(IPA)解説で登場
XP(Extreme Programming)のプラクティスの一つであるものはどれか。
正解:ペアプログラミング
要点:XPの代表的プラクティスはペアプログラミングやテスト駆動開発
XP(エクストリームプログラミング)は、少人数で短い反復を回すアジャイル開発手法で、ペアプログラミング、テスト駆動開発、リファクタリング、継続的インテグレーション、シンプルな設計などのプラクティスを定めている。ペアプログラミングは2人1組で1つのコードを書き、その場でレビューしながら進める手法である。
出典・参考
公式シラバスの4 開発技術 > 1. 開発プロセス・手法 > (1) ソフトウェア開発手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。