テスト駆動開発(TDD)とは?てすとくどうかいはつ
テスト駆動開発(TDD)とは、実装より先に「まだ通らないテスト」を書き、それを通す最小限のコードを書き、動作を保ったまま設計を整える、という短い周期を繰り返す進め方。XPのプラクティスの一つで、仕様が実行可能なテストとして残るため、変更のたびに以前動いていた部分の後戻りをその場で検出できる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
設計を先に固めて実装し、最後にまとめて試験する進め方では、仕様の誤りが判明するのが最も修正費用の高い段階になる。仕様の確認を最初に、しかも自動で何度でも回せる形へ置き直したのがTDDである。副産物として、試験しやすい形=依存を外から差し込める形へ設計が寄る。セキュリティ要件を後付けにしない足場としても働く。
具体例
提唱者のKent BeckはJavaのテスト基盤であるJUnitの開発にも関わっており、いまはJUnitやpytestで書いたテストをGitHub Actionsが変更のたびに自動実行する形が一般的。入力値検証であれば、境界値に加えてSQLの記号や制御文字を含む異常系を先にテストとして書けば、実装がその条件を満たさない限り通らない。
試験での引っ掛け
テストを先に書けば品質が保証される、と読むのが誤り。テストが表しているのは書いた人が理解した仕様であり、要求そのものが誤っていれば全部通っても妥当ではない。タイミングや実機の挙動、性能や可用性は単体の試験では押さえきれない。テストファーストとテストの自動化も別の話で、TDDの本体は設計を小刻みに検証する進め方にある。
関連用語
出た過去問
出典:平成30年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問23(IPA)
エクストリームプログラミング(XP: eXtreme Programming)における“テスト駆動開発”の特徴はどれか。
正解:プログラムを書く前にテストケースを作成する。
要点:テスト駆動開発は実装前にテストを書いて設計を導く
テスト駆動開発は、実装したい振る舞いを先にテストコードとして書き、失敗することを確かめてから、それを通す最小限の実装を書き、最後にリファクタリングするという短い周期を繰り返す手法である。テストが仕様の記述と設計の指針を兼ねる点が特徴で、バグの網羅的な摘出やカバレージの最大化そのものを目的とはしない。
出典:令和3年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問23(IPA)
エクストリームプログラミング(XP: eXtreme Programming)における"テスト駆動開発"の特徴はどれか。
正解:プログラムを書く前にテストコードを記述する。
要点:テスト駆動開発は実装より先にテストを書く
テスト駆動開発は、実装に先立って期待する振る舞いをテストコードとして書き、それを通すように最小限の実装を進める手法である。テストが仕様の役割を果たすため、設計が明確になり、変更時の退行も検出しやすくなる。
出典:令和6年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問23(IPA)
エクストリームプログラミング(XP:Extreme Programming)における“テスト駆動開発”の特徴はどれか。
正解:プログラムコードを書く前にテストコードを書く。
要点:テスト駆動開発は実装より先にテストを書く
テスト駆動開発は、実装コードより先にテストコードを書き、失敗するテストを通すために最小限の実装を行い、その後にリファクタリングする、という短い周期を繰り返す手法である。テストを先に書くことで、外部から見た仕様が先に確定し、実装が仕様から離れにくくなる点に狙いがある。
出典・参考
公式シラバスの4 開発技術 > 1. 開発プロセス・手法 > (1) ソフトウェア開発手法に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。