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

Hone up your BDD skills in 2014!

Posted by johnsmart on January 6, 2014 at 2:41 PM PST

We have an exciting training schedule lined up for 2014, with the introduction of a new workshop on Automated Web Testing with Selenium/WebDriver 2 and Thucydides, and updated course material in our other BDD master classes.

BDD, Unit Tests and the Power of Fluent Assertions

Posted by johnsmart on January 4, 2014 at 7:42 AM PST

An essential part of a well-written unit test is a well-written assertion. The assertion states the behavior you expect out of the system. It should tell you at a glance what a test is trying to demonstrate. It should be simple and obvious. You should not have to decipher conditional logic or sift through for loops to understand what it is doing.

Automated Functional Testing - The good, the bad and the ugly

Posted by johnsmart on August 20, 2013 at 9:13 PM PDT

Next week I will be giving a talk at the Sydney Agile Meetup entitled "Automated Functional Testing - The good, the bad and the ugly". Here is the summary:

In the pursuit of continuous delivery, here is our reality:

Unit testing is good, but just not enough.

Running parallel acceptance tests using JBehave, Thucydides and Bamboo

Posted by johnsmart on August 18, 2013 at 9:48 PM PDT

This article was writen by Simeon Ross, who works in a large government organization. In it, he describes how he sets up parallel testing in JBehave and Thucydides using Bamboo. Simeon has also put a sample project illustrating the approach on Github

Advanced TDD/BDD Master class - Learn TDD/BDD from the author of BDD in Action

Posted by johnsmart on August 7, 2013 at 12:19 AM PDT
Over the next few months, I will be running a new advanced TDD/BDD workshop in cities around Australia, including Sydney, Melbourne, Perth, Canberra and Brisbane (I also travel internationally a lot, so if you are interested but not in Australia, get in touch!). Here is the outline of the new course:

"BDD In Action" - a brand new on-site workshop on Advanced Agile Requirements Practices

Posted by johnsmart on April 1, 2013 at 4:52 PM PDT

Deliver applications that make a difference

It ain't just reds and greens: Automated Acceptance Testing and quaternary test outcomes

Posted by johnsmart on March 11, 2013 at 11:08 PM PDT

Although they seem simple enough on the surface, test outcomes are actually quite complicated beasts. Traditional unit tests, and basic TDD tests, have just two states, passing or failing, represented by red and green in the famous "RED-GREEN-REFACTOR" dicton.

Functional Test Coverage - taking BDD reporting to the next level

Posted by johnsmart on January 15, 2013 at 12:48 AM PST

BDD reporting: from test results to status reports

Conventional test reports, generated by tools such as JUnit or TestNG, naturally focus on what tests have been executed, and whether they passed or failed. While this is certainly useful from a testing perspective, these reports are far from telling the whole picture.

The Bugs are Building Another Death Star

Posted by johnsmart on October 24, 2012 at 6:19 AM PDT

Bugs are inevitable. Even after you thought you have finished coding your work, another bug creeps in, making you want to wish the bugs were real tangible objects that you could squish with your bare hands. Being a developer, you should be armed with the right weapons to battle bugs for they come almost all the time. In fact, they are building yet another Death Star.

To ATDD and Beyond! Better Automated Acceptance Testing on the JVM

Posted by johnsmart on October 21, 2012 at 3:45 AM PDT

Acceptance Test Driven Development (ATDD) is a method wherein business stakeholders, analysts, testers and developers collectively specify and agree on what needs to be completed in the project. Requirement specifications are set and verified even before actual development starts. This ensures that only those value-adding features are delivered to the business.