Rules

Secret ingredients to quality software

Do you follow BDD?

Last updated by Brady Stroud [SSW] on 07 Oct 2021 10:53 pm (about 2 months ago) See History

In the old days, reading and understanding test cases was something only developers could do. Behavioral-Driven Design (BDD) starts to solve this problem by enabling organizations to define their use cases in plain language and integrate these aspects with testing frameworks.

Using Gherkin syntax and a BDD framework like SpecFlow you can write test scenarios in plain language using a few key words (Given, When, Then). Plain language makes the test scenarios easy to understand, even for non-technical team members.

First think about the different scenarios that you want to test, then write them out in plain language using gherkin syntax.

Feature: Greeting Message
	Participant sees a greeting message

Scenario: Participant sees a greeting message
	Given I visit the website
	When I navigate to the greeting screen
	Then I see the greeting message

Figure: Good example - Gherkin syntax scenarios (Given, When, Then)

Once you have your scenarios lined up, you should begin to write the test steps for each scenario.

[Given(@"I visit the website")]
public async Task VisitTheWebsite()
{
    await HomePage.NavigateAsync();
}

[When(@"I navigate to the greeting screen")]
public async Task NavigateToWelcome()
{
    await HomePage.NavigateToGreeting();
}


[Then(@"I see the greeting message")]
public async Task ThenISeeTheGreetingMessage()
{
    var message = await HomePage.GetGreetingMessage();
    Assert.IsTrue(message == GreetingMessage);
}

Figure: Good example - Test steps to run, matching the Gherkin Syntax

Matt GoldmanMatt Goldman
Piers SinclairPiers Sinclair
Jake BaylissJake Bayliss

We open source. Powered by GitHub