フリーキーズ | 独学プログラミング

TDD(テスト駆動開発)とは

最終更新日

TDD(テスト駆動開発)とは、コードの前にテストを書くというソフトウェア開発手法です。これは、まずアウトプットがどうあるべきかを理解し、そのアウトプットを達成するためのソリューションを構築する、高度な計画手法のようなものです。

TDDの開発プロセス

ここでは、TDDの簡略化されたステップバイステップのプロセスを紹介します。

1. テストを書く

機能的なコードを書く前に、まず、機能または機能の改良を定義するテストを書きます。これは、機能のほんの少しに非常に焦点を当てるべきです。

2. テストを実行する

テストを実行すると、関数がまだ作成されていないため、失敗するはずです。これは奇妙に思えるかもしれませんが、テストが偽陽性でないことを確認し、コードが実装された後に本当に機能をテストすることになります。

3. コードを書く

今度は、テストがパスするような最も簡単なコードを書きます。

4. テストの再実行

コードを書き終えたら、もう一度テストを実行します。テストが通れば、次の小さな機能に移行できます。

5. コードをリファクタリングする

今、新しいコードは、何かを壊すことを恐れることなく、必要に応じてクリーンアップできます。テストが合格したので、あなたはバグを導入していないこと、新しいコードが要件を満たしていることを知ることができます。

TDDの例

例えば、電卓のアプリケーションを作っていて、足し算の関数を作っているところだとします。関数を書く前に、テストを書きますよね。テストケースの例としては、「2と3の和は5でなければならない」というものがあります。テストを実行すると、(関数がまだ存在しないので)失敗します。次に、加算関数のコードを書きます。再びテストを実行すると、合格しました。これで、コードをリファクタリングしたり、次の機能に進むことができます。

TDDはシンプルな設計を奨励し、テストがパスすれば、コードが機能的で、設定した要件を満たしていることがわかるので、自信を持たせることができます。