John Ferguson Smart

John's latest articles

John Ferguson Smart comes to Dublin!

Posted by John Ferguson Smart

John Ferguson Smart, author of BDD in Action and well-known BDD thought leader, will be returning to Dublin in June for an exclusive tour of seminars, meetups and workshops. Book your place now to avoid missing out! Breakfast Seminar with John Ferguson Smart Left-Shift – Bringing Requirements Discovery and QA Together to Deliver Software that…

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

BDD, Microservices, and Serenity BDD

Posted by John Ferguson Smart

Introduction Many people still associate Behaviour Driven Development (BDD) and automated acceptance testing with User-Interface tests. But BDD and automated acceptance criteria works equally well for service-level tests, notably for Microservices. In fact, automated acceptance tests for Microservices are easier to write and much quicker to run than UI-based tests. In this article, we will look at…

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

Generating focused reports with Serenity BDD

Posted by John Ferguson Smart

Many Serenity users that I work with and talk to have projects with a very large number of tests, spread over many functional areas and many different teams. It is useful to have an overall view of all of the test results, but it is also useful to limit the test results to show only…

Read More

Configuring different output directories with Serenity BDD and Maven

Posted by John Ferguson Smart

Serenity BDD is an open source automated testing library geared towards writing high quality, highly maintainable automated acceptance testing, and using these acceptance tests to produce world-class living documentation. In this article, we look at how to get Serenity to generate its reports in different directories, in both simple and multi-module Maven projects. By default, Serenity…

Read More

Serenity Tricks with Java 8

Posted by John Ferguson Smart

Java 8 came out back in 2014, but I still find many teams not making as much use of it’s features as they could. Arguably the biggest new feature in Java 8 were Lambda Expressions, which finally brought a taste of functional programming to the Java world. In this article, I want to give a…

Read More

A Test Pyramid Heresy

Posted by John Ferguson Smart

The Test Pyramid is a staple in Test Automation theory, and is used by many teams as the basis of their test automation strategy. But does it still work for modern development practices? Are there better and more efficient ways of thinking about test automation today? One of the more well-known models in the Test…

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

Page 1 of 212