I’m very excited to partner with Specflow on a new series of weekly blog articles, aimed at helping you get the most out of Given-When-Then feature files.
Tips and tricks for better feature specifications
Earlier this year, before this damned virus situation, I published the results of a research aimed to understand what’s changed in the Specification by Example space in the ten years since the book came out. One of the most surprising discoveries was how popular the Given-When-Then format became. When I wrote the book, it was used by a tiny minority.
Now, more than 70% of the teams that drive specifications and tests with examples do so using Given-When-Then steps. No doubt, one of the key reasons is that the format is very easy to get started with, but unfortunately, lots of people never move beyond the basics. That’s what we’re trying to fix with “Given-When-Then With Style” challenge.
The goal of this series of articles is to help you build more successful software through better-shared understanding, powered by examples.
- For those new to specification by example, we’ll explore how to get started easily and how to avoid the most common problems.
- For readers that are more experienced, we’ll cover how to capture examples through collaborative analysis, how to structure and organize feature files when dealing with complex domains, and how to ensure that documents stay easy to understand and easy to maintain over a long period.
- For the expert readers, we’ll cover tips and tricks on collaborative modeling, and how specification by example relates to other techniques.
Although the articles will be published on the SpecFlow website, they are tool-agnostic. You’ll be able to use most of the ideas with alternative tools, such as Cucumber, but also as more general techniques when doing collaborative analysis, even if you never automate any tests.
Each week, we’ll post a challenge on this web site, explaining a common problem people face when trying to capture examples with Given-When-Then steps. We invite the community to participate. Send your ideas and solutions, and the following week we’ll publish an analysis with answers.
List of published challenges
In case you have missed a challenge, here is an overview of our past challenges:
- Challenge 11: How to write a good scenario title?
- Challenge 10: How to call one scenario from another? (Solution)
- Challenge 09: How to set up complex relationships? (Solution)
- Challenge 08: How to deal with groups of similar scenarios? (Solution)
- Challenge 07: How to deal with external data formats? (Solution)
- Challenge 06: How to deal with all the extra cases and exceptions? (Solution)
- Challenge 05: How to fix a chain of dependent scenarios? (Solution)
- Challenge 04: Should the feature description look like a user story? (Solution)
- Challenge 03: How to deal with pauses and timeouts? (Solution)
- Challenge 02: How to structure a long list of examples? (Solution)
- Challenge 01: How to set up something that’s not supposed to exist? (Solution)
Do you have any challenges you’d like us to explore in one of our future posts?
PS: … and don’t forget to share the challenge with your friends and team members by clicking on one of the social icons below 👇