同じ振る舞いを述べる2つの異なる方法を取ります。
オプションA:
Given a customer has 50 items in their shopping cart
When they check out
Then they will receive a 10% discount on their order
オプションB:
Given a customer has a high volume of items in their shopping cart
When they check out
Then they will receive a high volume discount on their order
前者ははるかに具体的です。顧客が大量の割引を受ける時期や、どれだけの割引を受けるかについて誰かが質問がある場合は、このシナリオを読むと非常に明確になります。動作を文書化する目的で、可能な限り具体的ですが、これらの値を変更するにはシナリオを変更する必要があります。
2番目はより一般化されており、最初の明確さはありません。自動化するには、ステップの実装に値「50」と「10」を組み込む必要があります。一方、このシナリオはコアビジネスニーズを捉えています。大量の顧客は割引を受けます。後で「40」と「15」を使用することにした場合、コアビジネスのニーズは実際には変更されていないため、シナリオを変更する必要はありません(ただし、ステップの実装は変更されます)。また、「大量の顧客」という用語は、なぜ割引を提供しているのかを示しています。
それで、どちらが良いですか?むしろ、どのような状況で前者または後者を支持する必要がありますか?