Posted by John Ferguson Smart
1st October 2021
Parallel execution is a great way to speed up almost any test suite, but for a long time, running tests in parallel with Cucumber has been challenging. But there is great news on this front: Cucumber 6 supports parallel execution of features in JUnit natively. And if you are using Serenity BDD with Maven, this…
Read More
Posted by John Ferguson Smart
15th June 2020
What are your testing goals for the week? One way I like to prioritise my own goals is to think in terms of streams. The most obvious stream is value. You need to deliver value to your customer. From an agile test automation perspective, for example, this might mean writing relevant automated tests that help…
Read More
Posted by John Ferguson Smart
12th August 2019
Modern web applications are asynchronous by nature. So knowing how to wait for elements, before trying to interact with them, is an essential skill in modern test automation. Many testers pepper their web tests with Thread.sleep() statements, but this is the sub-optimal at best. It slows down the tests, makes them more brittle, and can…
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
29th July 2019
When we write automated acceptance tests we often need to perform some initial tasks to prepare test data or set up the test environment. Likewise, when a test finishes, we often need to tidy up the database or put the environment into a clean state. With Serenity BDD and Cucumber, there are several ways to…
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
9th May 2018
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
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
23rd November 2017
Running parallel tests in Cucumber with Serenity BDD has always been tricky. Until now. People often ask me how to run their Cucumber/Serenity BDD test suites faster. Fast feedback is key to a smooth build pipeline and to an effective test suite. A quick-running test suite means we can know when something goes wrong, and…
Read More
Posted by John Ferguson Smart
2nd November 2017
When we are working with BDD test automation tools such as Cucumber and JBehave, it often comes in handy to run an individual scenario in isolation. In this article, we look at how to do this using Serenity BDD. JBehave In JBehave, you need to use tags to identify the scenario you want to run….
Read More
Posted by John Ferguson Smart
23rd August 2017
Whether you are using Cucumber, JBehave or just JUnit, Serenity BDD encourages a layered, structured approach to automation. The reason for this is simply that it makes the tests easier to understand and maintain, and faster to write in the medium term. But people often wonder what is the best approach to share information between…
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
22nd May 2017
Serenity BDD is an open source library that makes it easier to write high quality, maintainable automated acceptance tests. Serenity BDD has strong WebDriver integration, and manages the WebDriver instances for you. You almost never need to create or close your own WebDriver instance. Chrome gives WebDriver developers a great deal of control, with many…
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
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