John Ferguson Smart

John's latest articles

What’s new in Serenity 2

Posted by John Ferguson Smart
bdd | serenity-bdd | test automation |

Serenity BDD is a library that helps you write better automated acceptance criteria, and produce better living documentation and executable specifications. In this article, we will look at the key new features in Serenity BDD 2.0. Introduction Serenity BDD is a test automation and reporting library that is used in conjunction with other testing libraries…

Read More

Getting into the BDD rhythm

Posted by John Ferguson Smart

For many teams, the benefits of Behaviour Driven Development are obvious. Teams that practice BDD well see significantly lower defect rates and higher quality features. More importantly, they stand a much higher chance of delivering the solutions the customer actually needs. The benefits of BDD are obvious. But then so are the benefits of exercise,…

Read More

How can I reuse my gherkin scenarios?

Posted by John Ferguson Smart

A Serenity user recently wrote to me with the following question: Is there anyway way to reuse Scenarios? Imagine that I’ve created a feature called “WelcomePage” with a Scenario called “Login” with the steps to Login to some webapp. Now, in a different feature file, on the Background part, use like a WelcomePage.Login (Feature.Scenario) and,…

Read More

BDD Discovery Pitfalls – When the gherkins hide the garden

Posted by John Ferguson Smart

In this article, we will take a look at a real-world example of BDD scenario refactoring. Sue’s team had just received a new story to work on. Sue’s team works in an international bank, in the regulatory department: they are building a workflow application that makes it easier for auditors to review risky or suspicious…

Read More

BDD and the four pillars of business agility

Posted by John Ferguson Smart

People often ask where Behaviour Driven Development, or BDD, fits with regards to other agile practices. Managers might say “BDD sounds great. But how do we align our agile transformation strategy with BDD adoption?”. Some ask “Does BDD work with Scrum/SAFe/Kanban/<insert your favourite agile methodology here>”? Some folk even simply ask “So are we doing…

Read More

Testing REST APIs with Cucumber, Rest Assured and Serenity BDD – a tutorial

Posted by John Ferguson Smart

Nowadays, applications rely more and more on well designed, well documented and well tested APIs, and the number of these APIs is steadily increasing. Simply writing test scripts for our REST end points is no longer enough – our APIs need not just tests, but living documentation. The Screenplay pattern is a powerful way of…

Read More

Working with REST APIs using Serenity Screenplay

Posted by John Ferguson Smart

An extract from The Serenity Book The Screenplay pattern is an approach to writing automated acceptance tests that helps us write cleaner, more maintainable, more scalable automation code. A Screenplay test talks first and foremost about the tasks a user performs, in business language, rather than diving into the details about buttons, clicks and input…

Read More

What is Behaviour Driven Development? The executive summary

Posted by John Ferguson Smart
bdd | Requirements Discovery | test automation |

Behaviour Driven Development (or BDD) is a powerful collaborative methodology that helps teams focus on delivering high value features sooner and more reliably. BDD builds on and extends standard agile practices such as sprint planning and backlog grooming, user stories and acceptance criteria, and makes them much more effective.  Teams practicing Behaviour Driven Development routinely…

Read More

Embedding Custom Data in Serenity Reports

Posted by John Ferguson Smart
Living documentation | reporting | serenity-bdd |

Executable specification written in Gherkin are a great way both to document an application’s behaviour, and to demonstrate that it works. QA folk can use the generated living documentation to verify both that the feature does what the business expects of it, and that the feature actually works. Because of this, BDD living documentation plays…

Read More

BDD Treaties

Posted by John Ferguson Smart
bdd | cucumber | Xscale |

Better cross-team coordination with collaborative governance and executable specifications Getting multiple teams to work together effectively on large projects can be tricky. We expect teams to be autonomous and independent. But at the same time we expect them to coordinate with other equally autonomous and independent teams, so that their modules or services mesh seamlessly…

Read More