本文へ移動

てすとくどうかいはつ

テスト駆動開発

TDD = Test Driven Development

機能の実装前にテストコードを先に書き、テストを通過する最小限のプログラムを書いてからコードを洗練させる開発手法です。

詳しい説明

テスト駆動開発とは、機能を実装する前にその機能に対するテストコードを先に作成し、テストをパスする最低限の実装を行ってからコードを洗練させる開発手法です。従来の「コードを書いてからテストする」流れとは逆の手順を踏むことで、設計のミスを初期段階で発見できる利点があります。

具体的には、まず失敗するテストを書き、そのテストを通過させるための必要最小限のコードを書き、最後に重複を取り除いたり構造を整理したりするリファクタリングを行う、という「赤・緑・リファクタ」のサイクルを繰り返します。この反復により、常に正常に動作する状態を保ちながら開発を進められるため、手戻りが減り、保守性の高いコードが維持されやすくなります。

試験では、アジャイル開発の手法の一つとして問われます。混同しやすいのは、テスト工程を自動化すること自体を指すテスト自動化です。テスト駆動開発はあくまで開発プロセスの手法であり、テスト自動化は開発を支える技術の一つです。開発の品質向上と効率化の両立を目指す点や、仕様変更に強い設計を維持できる点が評価されます。

試験で問われること

ITパスポート試験

  • アジャイル開発との関係性が問われます。
  • 開発効率化の手法として登場します。
  • テストを先行させる意図が問われます。

基本情報技術者試験

  • リファクタリングとの関連性が重要です。
  • テストコードの作成とプログラム実装の順序が問われます。
  • 品質向上と変更耐性の文脈で出題されます。