BDD と TDD は、実際にはそれらが何に使用されるかをカバーしていないため、非常に不運な名前になっています。
- テスターが取り上げるべきである開発サイクル中に、考えられるすべてのコーナーケースのテストを作成したくはありません。
- 回帰を望んでおらず、この繰り返しをクリアするために必要なコードを書いていることを確認したいので、再現可能な結果が必要です
- 最初に詳細な設計を行う必要はありませんが、今度は完成させたい要件を書き留めておいてください。
BDD/TDD のいずれかを記述しようとしているコードのビットを説明するコードのビットを取得する前に、コード行を記述しない場合は、2 つのいずれでも問題ありません。そうすることでゾーンに入ります。
BDD/TDD が開発速度を改善するという証拠はありませんが (ほとんどの場合改善されません)、ソフトウェアのリリース後に返される問題の数が大幅に減少することが証明されています。
BDD は TDD の進化版であり、TDD はすべてをテストするように圧力をかけます。BDD はこれを緩和し、内部が変更される可能性があるため、クラスのパブリックな動作のみをテストする必要があると述べています。
BDD は分析に関するものと同じくらい設計に関するものですが、それはあなたの質問ではないと思いますか? ストーリーをフローチャートやアーキテクチャ図に変換する方法を知りたいですか?
あなたの質問から私が得たのは、あなたが前もって大きなデザインを作り、それをコード化しようとしているということです. それは BDD では機能しません。なぜなら、少しずつ書く必要があるストーリーを満足させながら、コードとアーキテクチャを自動的に取得するからです。これは緊急設計と呼ばれるため、大規模な計画フェーズはありません。
スクラムや同様の賢明なシステムでは、ビジネスはあなたのストーリーを優先するため、これは非常にうまく機能します。一番上から始めて、その仕様/例を書き、このバックログ項目を完了するまでこれを繰り返し、例を満たすようにしてから、次のものを拾い上げて最初からやり直します。
これがあなたの質問に答えてくれることを願っています.. そうでない場合は、それが難しいトピックであるため、少し明確にする必要があります. 要するに、BDD は純粋に開発者ツールであり、アーキテクトや BA 向けではありません... テスターは BDD ツールを使用するかもしれませんが、アプリケーションのテストに使用するツールがそれだけではないことを願っています。