John Ferguson Smart

John's latest articles

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

Can you use BDD for legacy applications? Sure you can!

Posted by John Ferguson Smart

A few folk have been asking me about how BDD works with legacy applications. So here are my thoughts. BDD is a collaboration process that involves multiple team members working together with BAs, business or product owners to discover and refine requirements using structured conversations about examples of user and system behaviour. It is an…

Read More

BDD has crossed the chasm

Posted by John Ferguson Smart

In the latest InfoQ Engineering Culture and Methods Report, for the first time, the essential agile practices of Behaviour Driven Development (BDD), Craftsmanship and Coaching/Mentoring appear in the Early Majority category. It is not to soon. High performing organisations and teams have long realised that Scrum alone is not enough. One survey actually found that…

Read More

Who owns your Gherkin scenarios

Posted by John Ferguson Smart
Gherkin scenarios | Requirements Discovery | Xscale |

“In a team practicing BDD, who owns the Gherkin scenarios?” I’ve been asked this question more than once, so I thought I’d pen an answer. Gherkin is the Given..When..Then notation commonly used to express acceptance criteria in agile projects. It is notably used by Cucumber and other related Behaviour Driven Development tools. Cucumber lets you…

Read More

BDD is a disruptor

Posted by John Ferguson Smart
bdd | Requirements Discovery | Xscale |

Remember when the iPhone came out? Remember how Steve Jobs pitched that it “Changed Everything”, the first time? Maybe he was exaggerating a little, but there is no doubt that the iPhone was a game-changer. It changed the way we thought about what a telephone should do. The iPhone was what we call a market…

Read More

Living Documentation: it’s not just about test reports

Posted by John Ferguson Smart
Living documentation | Requirements Discovery | Xscale |

What is Living documentation Living Documentation comes from the world of Behaviour Driven Development, and is closely related to the idea of Executable Specifications. But what do we mean by “living documentation”? Living documentation is, as the name suggests, both documentation, and living. It is documentation. It describes how an application works, and what business rules affect…

Read More

Working with AngularJS apps in Serenity BDD

Posted by John Ferguson Smart
AngularJS | Requirements Discovery | Xscale |

AngularJS applications have their own challenges when it comes to WebDriver test automation. The asycnhronous nature of Angular apps makes testing these applications particularly tricky when using traditional WebDriver-based technologies. In the JavaScript world, Protractor provides an elegant solution to the problem of testing AngularJS apps. Protractor supports angular-specific locators and knows how to wait…

Read More