Posted by John Ferguson Smart
19th November 2021
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
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
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
Posted by John Ferguson Smart
3rd October 2021
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
Posted by John Ferguson Smart
6th November 2019
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
Posted by John Ferguson Smart
5th August 2019
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
Posted by John Ferguson Smart
23rd June 2019
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
Posted by John Ferguson Smart
18th April 2019
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
Posted by John Ferguson Smart
31st December 2018
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
Posted by John Ferguson Smart
17th November 2018
“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
Posted by John Ferguson Smart
3rd October 2018
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
Posted by John Ferguson Smart
6th September 2018
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
Posted by John Ferguson Smart
7th August 2018
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
Posted by John Ferguson Smart
14th June 2018
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
Posted by John Ferguson Smart
13th May 2018
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
Posted by John Ferguson Smart
16th April 2018
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
Posted by John Ferguson Smart
9th February 2018
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
Posted by John Ferguson Smart
24th January 2018
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
Posted by John Ferguson Smart
15th January 2018
“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
Posted by John Ferguson Smart
11th January 2018
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
Posted by John Ferguson Smart
2nd January 2018
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
Posted by John Ferguson Smart
12th November 2017
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
Posted by John Ferguson Smart
1st November 2017
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
Posted by John Ferguson Smart
24th October 2017
“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
Posted by John Ferguson Smart
19th October 2017
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
Posted by John Ferguson Smart
25th July 2017
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
Posted by John Ferguson Smart
13th July 2017
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
Posted by John Ferguson Smart
4th July 2017
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
Posted by John Ferguson Smart
15th May 2017
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
Posted by John Ferguson Smart
10th May 2017
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
Posted by John Ferguson Smart
4th May 2017
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
Posted by John Ferguson Smart
3rd May 2017
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
Posted by John Ferguson Smart
30th April 2017
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
Posted by John Ferguson Smart
12th April 2017
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
Posted by John Ferguson Smart
29th March 2017
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
Posted by John Ferguson Smart
25th January 2017
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
Posted by John Ferguson Smart
1st December 2016
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