本文へスキップ

テスト駆動開発とは?

てすとくどうかいはつ

テスト駆動開発とは、プログラムコードを書く前にテストを先に書き、そのテストを通過させる形で実装を進めるソフトウェア開発手法です。

テスト駆動開発(TDD:Test-Driven Development)とは、ソフトウェア開発において「まずテストを書き、次に実装する」というサイクルを繰り返す開発手法です。ケント・ベックが提唱し、アジャイル開発やエクストリープログラミング(XP)の重要な実践の一つとして広まりました。

TDDの基本サイクルは「Red → Green → Refactor」の3ステップで構成されます。

  • Red(失敗):まだ実装していない機能に対するテストコードを先に書く。この時点ではテストは必ず失敗する。
  • Green(成功):テストを通過させるための最小限のコードを実装する。
  • Refactor(改善):テストが通過したまま、コードの品質を改善(リファクタリング)する。

このサイクルを短い間隔で繰り返すことで、常にテストに裏付けられたコードが積み上がっていきます。

TDDのメリットは次の点にあります。

  • バグの早期発見と修正コストの削減
  • 設計が自然と疎結合になりやすい
  • リファクタリングを安心して行える
  • 仕様をテストとして文書化できる

一方で、テストの書き方に習熟が必要であること、初期の学習コストがかかることも知られています。現在はJUnit(Java)、pytest(Python)、Jest(JavaScript)など多くのテストフレームワークがTDDをサポートしており、多様な開発現場で採用されています。

使い方・例文

「新しい機能を追加する際、TDDでは実装前に『この関数は〇〇を返すべき』というテストを書いてから、コードを実装する」という形で実践されます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語