TDD(テスト駆動開発)とは、コードの前にテストを書くというソフトウェア開発手法です。これは、まずアウトプットがどうあるべきかを理解し、そのアウトプットを達成するためのソリューションを構築する、高度な計画手法のようなものです。
ここでは、TDDの簡略化されたステップバイステップのプロセスを紹介します。
機能的なコードを書く前に、まず、機能または機能の改良を定義するテストを書きます。これは、機能のほんの少しに非常に焦点を当てるべきです。
テストを実行すると、関数がまだ作成されていないため、失敗するはずです。これは奇妙に思えるかもしれませんが、テストが偽陽性でないことを確認し、コードが実装された後に本当に機能をテストすることになります。
今度は、テストがパスするような最も簡単なコードを書きます。
コードを書き終えたら、もう一度テストを実行します。テストが通れば、次の小さな機能に移行できます。
今、新しいコードは、何かを壊すことを恐れることなく、必要に応じてクリーンアップできます。テストが合格したので、あなたはバグを導入していないこと、新しいコードが要件を満たしていることを知ることができます。
例えば、電卓のアプリケーションを作っていて、足し算の関数を作っているところだとします。関数を書く前に、テストを書きますよね。テストケースの例としては、「2と3の和は5でなければならない」というものがあります。テストを実行すると、(関数がまだ存在しないので)失敗します。次に、加算関数のコードを書きます。再びテストを実行すると、合格しました。これで、コードをリファクタリングしたり、次の機能に進むことができます。
TDDはシンプルな設計を奨励し、テストがパスすれば、コードが機能的で、設定した要件を満たしていることがわかるので、自信を持たせることができます。