John Ferguson Smart

John's latest articles

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

Engage! Bringing teams together to deliver software that makes a difference

Posted by John Ferguson Smart

John delivers a Keynote at the IMWorld 2017 conference in Romania on the topic of bringing teams together to deliver software that makes a difference:

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

Persona Step Libraries in Serenity BDD

Posted by John Ferguson Smart

Serenity 1.6.3 comes with a new step library feature called Persona Step Libraries. Persona Step Libraries help you make your test code more intuitive and more readable. You can check out the full release announcement on our new Rocket Chat forum. Serenity has always tried to make it easy to organise your test code into appropriate…

Read More

All you need to know about Serenity BDD Step Libraries

Posted by John Ferguson Smart

In Serenity 1.6.0, we have refactored how step libraries are managed, to make them more intuitive and easier to understand. Basic step libraries In Serenity, we use step libraries to better organise our test logic into reusable components. Step libraries are often used to represent actors or persona who interact with the application. For example,…

Read More

Exponential Learning – the key to effective Lean/Agile practices

Posted by John Ferguson Smart

In lean/agile software development, learning is not a byproduct; learning is the most valuable output. To up our game, we don’t just need to learn how to build and deliver better software. We need to learn how to learn better. And one of the keys to learning better and faster is measuring how well we…

Read More

How not to prepare test data in JBehave and Cucumber

Posted by John Ferguson Smart

Preparing test data is hard, avoiding duplication and unnecessary setup time are common issues in all test automation. But it is especially important when we automate acceptance criteria using BDD tools such as JBehave and Cucumber. Duplicating setup logic in each scenario can lead to cluttered and hard-to-read scenarios. And having to inject the same…

Read More

Announcing the Serenity Dojo’s “BDD with Cucumber and Serenity” online course

Posted by John Ferguson Smart

Great news! We have launched our brand new BDD with Cucumber and Serenity course! Two modules (about 45 minutes of video) are currently online, with 9 more modules planned for the coming months, with the first one free to try out. Those of you who have enrolled in the The Serenity BDD Combo Package will…

Read More

Running Cucumber with Serenity feature files directly from IntelliJ

Posted by John Ferguson Smart

IntelliJ provides excellent integrated support for Cucumber feature files. You can even run features simply by right-clicking on the feature file. But this won’t work when you are using Cucumber with Serenity, as Serenity needs to instrument the feature file before execution. Fortunately, this is easy to fix. Here’s how: Click on the feature file you…

Read More

Sharing state between steps in Serenity BDD

Posted by John Ferguson Smart

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