John Ferguson Smart

John's latest articles

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

Serenity BDD Tip: fine-tuning screenshots in your living documentation

Posted by John Ferguson Smart

One of the distinguishing features of Serenity BDD is its powerful reporting capabilities. If you organise and structure your tests well, Serenity can help you turn your tests into a sort of light-weight functional documentation, describing both what your application does in high level terms, and how users use the application to achieve specific goals….

Read More

The role of QA in a DevOps world

Posted by John Ferguson Smart

If you believe what you hear, DevOps is the latest “big thing”. According to a recent survey, high performance teams practicing a DevOps culture deploy 30 times faster and have 60 times fewer failures than low performing teams. Companies having adopted DevOps have been reported reducing the average time it takes to get a feature…

Read More

I don’t ask devs to commit, and neither should you

Posted by John Ferguson Smart

I’ve seen the ‘C’ word floating around the Agile blogosphere again recently – yes, “Commit”. And I’m not talking about Git. I’m talking about that stick that incompetent scrum-masters use to beat their team members into submission so they can look good in the eyes of their managers. You see, “commitment” to delivery individual stories…

Read More

The five stages of BDD (and Agile) Adoption

Posted by John Ferguson Smart

An article by John Ferguson Smart and Jan Molak. More and more organisations are looking to Behaviour Driven Development (BDD) and related practices, as a way to gain or maintain their competitive advantage in software delivery. This is generally a good thing, and the teams I see that succeed in embracing a BDD and Agile…

Read More

Page 2 of 3123