Why we test using SpecFlow

For those not familiar with using SpecFlow, it is an open source .Net tool which is based on the Gherkin syntax using plain English text format. It is used to express user stories and their expectations in a behavior-driven development (BDD) environment.

Even though SpecFlow was inspired by the Cucumber framework, using SpecFlow has a number of advantages over Cucumber which is a natural progression in the way we test and understand technology. Simply put, it’s like telling a story in point form, noting the core required events, triggers and response functionality of a piece represented as “Given”, ”When”, ”Then”, ”And”,” But” and “Examples” .

Why we’re using SpecFlow

This is the reason why using SpecFlow is our primary method of testing.  It bridges the gap between a Business Analyst, QA, Automation Test Engineer and the Developer in a way that all can understand. Since it is in a plain text format, it can be shared with non-technical stakeholders within an organization  and still be understood effortlessly. This is the main reason BDD has become popular in the business environment.

You can see why this has become a necessity for Warewolf’s agility and adaptability. This became important because of regular interaction with different types of businesses that wanted to use Warewolf ESB for their core needs and to speed up productivity.

Using SpecFlow: a real life example

Below is an example of a Warewolf ESB connector with its primary function and the steps one would take to create a New Database Service.

DB service using Specflow for testing

As you can see the main function of this tool is to be shown the database service setup in order to manage database services as a Warewolf user. The steps to create a DB Service are then placed in a user story with the scenario’s aim – which in this instance it is to create a DB Service. There are various ways to go about writing effective tests for various types of data and expected results. This is highly beneficial for testing functionality of a piece which can have multiple end results.

This is how we have managed to ensure high quality and attention to detail within the system. Each element has been carefully set up to meet our standards.

If you would like to see our implementation come check out Warewolf in GitHub.

FacebookTwitterLinkedInGoogle+RedditEmail

2 Comments

  1. Piitopzii

    I’m trying to use djngao-behave!It’s not a vital project, but I like the idea and I’m trying to understand it.It could use a tutorial on how to set it up and test a feature with djngao, for example with selenium. I’ll think about it!

Leave A Comment?