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

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!

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.