Skip to main content

John Ferguson Smart

John is a freelance consultant specialising in Enterprise Java, Web Development, and Open Source technologies, currently based in Wellington, New Zealand. Well known in the Java community for his many published articles, John helps organisations to optimize their Java development processes and infrastructures and provides training and mentoring in open source technologies, SDLC tools, and agile development processes. John is principal consultant at Wakaleo Consulting, a company that provides consulting, training and mentoring services in Enterprise Java and Agile Development.


johnsmart's blog

Handling work-in-progress with Thucydides and JBehave using @pending and @wip tags

Posted by johnsmart on August 20, 2014 at 8:36 AM PDT

Thucydides version 0.9.268 has just been released, with a few very interesting new features. Thucydides is an open source reporting library that helps you write more effective BDD-style automated acceptance criteria, and generate richer test reports, requirements reports and living documentation.

BDD, automated acceptance tests and continuous delivery: dealing with scenarios that are 'work-in-progress'

Posted by johnsmart on August 17, 2014 at 9:21 PM PDT

One of the principle rules of Continuous Integration (and Continuous Delivery) is that you should never knowingly commit code that will break the build. When you practice test-driven development this is easy: you write a failing test (or, more precisely, a failing "executable specification"), make it pass, and then refactor as required.

Data-driven unit testing in Java

Posted by johnsmart on July 23, 2014 at 10:09 PM PDT

Data-driven testing is a powerful way of testing a given scenario with different combinations of values. In this article, we look at several ways to do data-driven unit testing in JUnit.

BDD Requirements Management with JBehave, Thucydides and JIRA - Part 2

Posted by johnsmart on July 14, 2014 at 11:01 AM PDT

BDD Requirements Management with JBehave, Thucydides and JIRA – Part 1

Posted by johnsmart on July 10, 2014 at 2:48 PM PDT

It's testing, Jim, but not as we know it

Posted by johnsmart on June 25, 2014 at 9:50 PM PDT

Behaviour Driven Development is an increasingly popular Agile development practice that turns testing on its head. It turns automated acceptance testing from a verification activity, done once the development work is done, to a specification activity, with tester involvement starting from the word go.

BDD in Action

Posted by johnsmart on June 25, 2014 at 2:53 PM PDT

Behaviour-driven development (BDD) started as an improved variation on test-driven development, but has evolved to become a formidable tool that helps teams communicate more effectively about requirements, using conversation and concrete examples to discover what features really matter to the business.

Using BDD with web-services: a tutorial using JBehave and Thucydides

Posted by johnsmart on April 22, 2014 at 1:42 AM PDT

Behavior Driven Development (BDD) is an approach that uses conversions around concrete examples to discover, describe and formalize the behavior of a system. BDD tools such as JBehave and Cucumber are often used for writing web-based automated acceptance testing. But BDD is also an excellent approach to adopt if you need to design a web service.

Automated Web Testing with WebDriver workshop - now running over two days!

Posted by johnsmart on March 16, 2014 at 1:45 PM PDT

Due to popular demand, we are now running our very popular Automted Web Testing with WebDriver workshop over two days.

The Three Amigos Special Deal - Advanced Agile Requirements Practices Workshop for the whole team!

Posted by johnsmart on January 27, 2014 at 3:01 PM PST

  • Deliver valuable features, faster!
  • Reduce wasted efforts due to misunderstood requirements!
  • Engage stakeholders more effectively to discover not just what they ask, but what will really help them!