John Ferguson Smart

John's latest articles

Does BDD Help With Manual Testing

Posted by John Ferguson Smart

Does BDD Help With Manual Testing? This question came up recently, and it’s a good one. The answer is YES. If you’re a manual tester, or just getting into automation, BDD can feel a bit intimidating. But it turns out, it can be a fast track to more effective agile testing, even if you don’t…

Read More

How do you do field validation in Gherkin?

Posted by John Ferguson Smart

How do you do field validation in a Cucumber scenario? I got this question recently, and wanted to share a few techniques I’ve personally found helpful. Here’s one option: This is a classic data-driven approach. It is pretty readable. But the test will reload the page for each variation, which might not be optimal. What…

Read More

Four tips to help your team REALLY do BDD

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. These teams tend to be more engaged and creative as well. More importantly, they stand a much higher chance of delivering the solutions the customer actually needs. So the benefits…

Read More

On Requirements and Runways – or, are all viewpoints valid?

Posted by John Ferguson Smart

I came across this cartoon recently. It’s supposed to illustrate that two apparently contradictory viewpoints can both be correct, "from a certain point of view". Or that both viewpoints are equally correct. It’s a cute metaphor, but does it hold up to reality? And is it helpful? Now in software development, this isn’t a theoretical…

Read More

Feature Mapping – a lightweight requirements discovery practice for agile teams

Posted by John Ferguson Smart

Feature Mapping is a simple but effective way for teams to discover, explore and deeply understand the features their customers need. In a Feature Mapping session, teams work through concrete examples of how a feature should work, breaking these examples down into steps and tangible business outcomes. Mapping out these examples helps team members discover…

Read More

Learn about Cucumber 4, Java, and Serenity BDD in a new chapter of the Serenity BDD book

Posted by John Ferguson Smart

Cucumber 4 has a lot of new features which can help make our Cucumber test automation code cleaner and more expressive. But there are also some big changes under the hood! Fortunately, Serenity BDD is here to help. The Serenity BDD Book has a brand new and very detailed guide on working with Cucumber 4,…

Read More

Serenity Ensure – Fluent Assertions in Serenity Screenplay

Posted by John Ferguson Smart

Assertions are an important part of any test automation framework, and Serenity gives us many options. You can of course use standard JUnit, Hamcrest or AssertJ assertions at any point in a Screenplay test. But more recent versions of Serenity Screenplay provide an alternative approach, which many developers find easier to use and faster to…

Read More

BDD in Action: Advanced BDD Test Automation

Posted by John Ferguson Smart

Join John Ferguson Smart in Madrid this June at Expo:QA and learn the finer points of Advanced BDD Test Automation practices In this workshop with John Smart, author of BDD in Action, you will be introduced to the principles and practices of applying software engineering design practices to test automation, looking at concepts such as…

Read More

Reporting Manual Test Results in Serenity BDD

Posted by John Ferguson Smart

Serenity is primarily designed to report the results of automated acceptance tests. However, there are times when some tests need to be done manually. And it is useful to report these tests in the overall test reports, to get a broader picture of test coverage. To make this easier, Serenity with Cucumber provides some support…

Read More

So you say you are doing BDD? The story of the whiteboard and the nail gun

Posted by John Ferguson Smart

“BDD is what makes you BE agile, instead of just doing agile” It isn’t hard to find a team that says they are doing Behaviour Driven Development, or BDD. This isn’t too surprising, since, when done well, it is an extremely effective way of delivering high value, high quality solutions to your users. Unfortunately, the…

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

What is Behaviour Driven Development? The executive summary

Posted by John Ferguson Smart

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

BDD Treaties

Posted by John Ferguson Smart

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

“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

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

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

One to request, one to suggest and one to protest – the anatomy of a Three Amigos Requirements Discovery workshop

Posted by John Ferguson Smart

Behaviour Driven Development (or BDD) is a collaborative requirements discovery practice that uses conversations around concrete examples to build a shared understanding and deliver features that matter. The "Three Amigos" workshops are a core part of BDD practices. It is also an important requirements discovery practice used even in teams who are not officially "doing"…

Read More

Tell me what you know – a different way of looking at requirements discovery

Posted by John Ferguson Smart

The legacy of the linear requirements process When I started out in software development, we had a thing called a Requirements Specifications Document. Business Analysts would spend a very long time gathering the requirements, organising them, and writing them down in a large Word document. Over time, folk found this approach to be inefficient and…

Read More

Learn BDD test automation with Cucumber and Serenity at the Serenity Dojo

Posted by John Ferguson Smart

“Cucumber and Serenity are the Dynamic Duo of BDD test automation” Learn real-world BDD test automation practices with Cucumber and Serenity BDD, online and at your own pace. Behaviour Driven Development, or BDD, is an extremely effective software delivery practice that helps teams collaborate better and focus on delivering features that really matter. Cucumber is…

Read More

Intent-Driven Development – the hidden key to BDD

Posted by John Ferguson Smart

Intent-Driven Development. It’s not a new agile fad – it’s just articulating an approach that works well for a lot of experienced practitioners. Whether they know it or not. When I train and coach development teams, I like to talk about Intent-Driven Development. Don’t worry – Intent-Driven Development is not the latest agile trend. Rather,…

Read More

Beyond Page Objects: liberate yourself from the chains of UI-think!

Posted by John Ferguson Smart

So you have Page Objects in your test automation suite? That’s great! But it’s not enough! Page Objects are a great start, but you need to go further if you want truly sustainable, high quality test automation. The Page Objects origin story Page Objects are a popular automated web testing pattern first implemented for Selenium by Simon…

Read More

Don’t let automation sabotage your BDD adoption

Posted by John Ferguson Smart

Test Automation can be a powerful aid for teams adopting Behaviour Driven Development. But do it too early, or in the wrong way, and your efforts can have the opposite effect. We all want to deliver great products. We all want to delight our customers. But sometimes, reality gets in the way, and delivering features…

Read More

The Three “A”s, building blocks for a great test suite

Posted by John Ferguson Smart

Writing high quality automated tests is not easy, especially for manual testers who are relatively new to automation. There is a learning curve. But the cost of not writing high quality test code, both in terms of maintenance and time wasted on unreliable or hard-to-update tests, is unsustainable for any but the smallest project. This…

Read More

User-centric and task-driven: a better way to automate

Posted by John Ferguson Smart

Too often, our acceptance tests end up as sequences of “click”s and “select”s running against a web application. This makes our tests hard to understand and hard to maintain. User-centric, task-driven test automation shows us a better way. When we learn something new, it is easy to get stuck in a low-level, details-focused way of…

Read More

Screenplay with Serenity BDD: the next stage in automated acceptance testing

Posted by John Ferguson Smart

I spoke recently at the CraftConf conference in Budapest on writing higher quality automated tests using the Screenplay pattern. The last half of the talk contains a live demo of using the Screenplay pattern with Serenity BDD. Learn how to write robust and articulate tests using the Screenplay Pattern, an innovative approach to writing BDD-style…

Read More

Multi-browser and multi-environment testing in Serenity BDD

Posted by John Ferguson Smart

Sometimes we might want to run the same test in different environments, or on different browsers, and still see each test run appear in the reports. The latest version of Serenity BDD allows you to implement multi-browser and multi-environment testing using the notion of contexts. A context is a way of running the same test several…

Read More

Running Serenity BDD tests with Tags

Posted by John Ferguson Smart

Tags are a powerful feature of Serenity, making it much easier to read, understand and navigate through the test reports. But tags also allow you to be more selective about what tests you run. This article shows you how. There are many times when it comes in handy to run just a subset of our…

Read More

When what we ask for is not what we get, and what we get is not what we need

Posted by John Ferguson Smart

Great teams deliver great products by solving problems their customers had but didn’t fully express, in ways they didn’t imagine possible. To deliver truly great products, software or otherwise, we need to go beyond what the customers or users ask for. We need to discover, understand and deliver what they really need. “If I had…

Read More

In the “three amigos” band, the BA sets the tune. But it shouldn’t always be that way

Posted by John Ferguson Smart

During Requirements Discovery and Definition activities, products owners and business analysts lead the dance. The ideas they propose, the problems they present, and the solutions they suggest, set the tone for the requirements that are discovered and ultimately the solution that will be delivered. This can be good or bad. Done well, you can instil…

Read More

Broad brushes and narrow brushes: there’s more to BDD than Given/When/Then

Posted by John Ferguson Smart

IT teams today are under constant pressure to deliver more value sooner, and Behaviour Driven Development (BDD) is one of the more effective ways to help teams deliver the high quality software that their business needs. When they adopt BDD, many teams look to tools like Cucumber to help them. But BDD isn’t simply about…

Read More

Feature Mapping – a simpler path from stories to executable acceptance criteria

Posted by John Ferguson Smart

Introduction Writing good acceptance criteria is one of the keys to effective software delivery. But it’s hard. This article looks at Feature Mapping, a new technique that can help teams write higher quality acceptance criteria more easily. An Executable Specification is a Definition of Done that you can run as a test. In Behaviour Driven…

Read More

A day (or a sprint) in the life of a BDD team

Posted by John Ferguson Smart

Introduction Behaviour Driven Development is a collaboration practice that uses conversations around concrete examples and requirements, expressed in an executable form, to deliver higher value software more effectively. In this article, we walk through a typical BDD process. While every BDD team is different, and mature teams adapt and refine their process to suit their…

Read More

© 2019 John Ferguson Smart