Specflow は自動化ツールですが、たとえば Selenium や Microsoft UI Automation よりも高いレベルで機能します。通常は、ユーザーがアプリケーションを使用するシナリオを説明するために使用します。例えば:
Given Andy Admin is an administrator
When he logs in
Then he should be taken to the admin home page.
Given Andy Admin is on the admin home page
When he wants help
Then he should be directed to the admin manual.
管理者ヘルプ ボタンについてはどこにも触れていないことに注意してください。アンディは簡単に秘書に助けを求めることができたでしょう! システムによって提供される機能の観点から、手順を宣言的に説明しています。これが BDD のスタイルです。
次に Specflow は、Given、When、Then のフレーズをコード ステップにマップします。コードでは、自動化ツールを使用して実際にボタンをクリックできます。ただし、ビジネスがシステムの機能を説明するために使用するのと同じ言語を使用する方が、はるかに保守性が高くなります。UI が変更された場合、変更する必要があるのは 1 つのステップだけであり、15 奇数のシナリオを変更する必要はありません。
また、シナリオで高級言語を使用すると、ビジネスの関心を維持する傾向があります。つまり、それらのシナリオについて彼らと会話するのがはるかに簡単になります。会話は BDD の中心であり、自動化の部分をどのように行うかについて心配する前に、会話から始めることをお勧めします。