John Ferguson Smart

Helping teams work together effectively for better features delivery.

Advanced BDD/TDD Masterclass


Experience the full BDD lifecycle with the author of BDD in Action!
Good BDD/TDD and Software Craftsmanship practices can reduce defects by 90% or more, promote better design, make the code easier to understand and to modify, and cheaper to maintain. But this skills are notoriously hard to master without help. This hands-on workshop will immerse students in a realistic project, using pair programming and BDD/TDD practices to implement a number of business features. Students will learn how to:

  • Capture requirements in the form of executable specifications
  • Use automated acceptance tests to focus work on the features that matter
  • Write unit tests in the form of executable specifications that help design and implement your software
  • Refine and evolve your software design using TDD and refactoring
  • Apply OO Design and SOLID principles to write clean, maintainable code
  • Write highly readable, highly maintainable code that is a fluent expression of the business domain
  • Write unit tests that can act as living technical documentation
  • Foster and sustain a culture of technical excellence within your team

Lab exercises use Java 8, Cucumber-JVM, Serenity, Spock and JUnit.