Hemant
Hemant

Reputation: 421

Using SpecFlow as primary Requirements Management Tool

We are planning to use SpecFlow as our primary requirements tool for a web based project. This application has lot of variations of some common objective forms. These variations are primarily per user country the application serves (Multi-tenancy).

Q1. Is SpecFlow a good choice for such requirements?

We already found that the number of fields in each form is quite large and many of these field needs validations. Some on client side and some on availability of data or other server side validations. This is tedious in SpecFlow although not totally impossible. But this is not what SpecFlow is designed for (Behavior Driven and not data centric)

Q2. Please suggest what best practices should we follow to capture the requirements in SpecFlow and

Q3. In which areas we need to use some other tools. (Where SpecFlow is not able to capture requirements well)

Upvotes: 3

Views: 776

Answers (3)

AndyM
AndyM

Reputation: 3794

Also checkout the companion product 'SpecLog' as a way of visualizing these requirements.

Upvotes: 0

Phillip Trelford
Phillip Trelford

Reputation: 6543

SpecFlow is a .Net implementation of Cucumber, a tool for behavior driven development also referred to as specification by example. Scenarios are described in Cucumber's Gherkin language.

Gherkin lets you specify data in tables either inline or as examples:

Scenario Outline: eating
  Given there are <start> cucumbers
  When I eat <eat> cucumbers
  Then I should have <left> cucumbers

Examples:
| start | eat | left |
|  12   |  5  |  7   |
|  20   |  5  |  15  |

Using tables may help you specify the fields for your forms in an easy to read way.

If this is still unmanagable, another option is to use NUnit which lets you specify multiple values and generate the Combinatorial set of test cases. If you want combinatorial test cases with a Cucumber library you may want to consider switching to TickSpec which supports multiple example tables per scenario.

Upvotes: 1

Andy Waite
Andy Waite

Reputation: 11096

I don't see any obvious reason why you can't use SpecFlow for this. Just take care to write the specs at a suitably high level of abstraction.

If you post an example of what you think is tedious then it may be possible to give some advice.

Upvotes: 0

Related Questions