BDD(ビヘイビア駆動開発)は、テスト駆動開発(TDD)から発展したソフトウェア開発手法です。TDDが機能の実装方法に焦点を当てるのに対し、BDDはエンドユーザーに対するアプリケーションの動作に焦点を当てます。BDDは、開発者、QA、そしてソフトウェアプロジェクトに参加する非技術者やビジネス関係者のコラボレーションに重点を置いています。
以下は、BDDの簡略化されたステップバイステップのプロセスです。
ユーザーの視点からソフトウェアの動作を定義することから始めます。これは通常、非技術的な利害関係者を含むすべての関係者にとって理解しやすい方法で動作を記述する単純なドメイン固有言語(DSL)を使用して行われます。例としては、次のようなものがあります。
例)ユーザーがホームページにいるとして、『ログイン』ボタンをクリックすると、『ログインフォーム』が表示されるようにする。
次に、その動作を特定のテストケースにします。このテストは通常、Gherkinのような言語で書かれ、Given、When、Thenの構文を使用し、簡単に理解できます。先ほどの例では、Gherkinのテストは次のようなものになります。
TDDと同様に、テストを実行すると、その動作はまだ実装されていないため、失敗するはずです。
次に、動作を実装し、テストをパスさせるコードを書きます。
コードを書き終えたら、再びテストを実行します。テストが通れば、次の動作に移ることができます。
TDDと同様に、テストが合格しているので、何も壊していないと確信して、コードをリファクタリングできます。
BDDは、アプリケーションがどのように振る舞うべきかについての共通理解を作るのに役立ち、誤解や誤認を避けることができます。BDDは、技術的に健全で、ビジネスニーズを満たすソフトウェアを作成するために設計されています。