Skip to content


BDD in Action: Advanced TDD/BDD Master class

Effective Agile Requirements Workshop

Build the right software, and build the software right

Test Driven Development (TDD) is a cornerstone of good modern development practices. Good TDD practices can reduce defects by 90% or more, promote better design, make the code easier to understand, to change and cheaper to maintain. But it is hard to master without help.

This workshop will give your team a solid grounding in practical TDD/BDD, no matter what language they use or what background they come from. Students will learn how to write high-quality unit tests, or more precisely, "executable specifications", to write better designed, more maintainable and more reliable code.

In this 2-day intensive course, students will also discover how BDD helps keep development focused on the real requirements, resulting in a higher quality product for the end user. Return on investment is immediate - these are skills that every developer needs to master.

This workshop teaches the principles of TDD and BDD, which are applicable in any modern programming environment. We discuss TDD/BDD tools for Java, .NET and JavaScript, and students have the option of doing the labs in the language of their choice, and even bringing their own laptops.

Course outline

  • Principles of Agile Requirements Gathering
  • Discovering and defining requirements, BDD-style
  • Writing high-level executable specifications (JBehave, Cucumber, SpecFlow)
  • Introducing Test Driven Development, BDD-style
  • Unit tests as executable specifications
  • Writing high quality unit tests (JUnit, NUnit, Spock, NSpec, Jasmine)
  • Unit tests as living technical documentation
  • Data-driven testing
  • Interaction-based testing (mocks, stubs, doubles)
  • London-style TDD: discovering system design using mocks
  • Refactoring strategies
  • TDD for legacy code

To ensure an optimal learning experiences, class sizes are limited. Book early!

John Ferguson Smart is a leading international expert in the domain of behaviour driven development, automated testing and software life cycle development optimization. John is a renown speaker at international conferences and events. John is the author of BDD In Action, “Jenkins: The Definitive Guide”, and “Java Power Tools”. John is also the founder and lead developer of the Thucydides project, a new open source library that helps teams organize and implement more effective automated acceptance tests.

This workshop focuses on understanding the core concepts behind agile requirements practices, and needs no technical or programming knowledge at all. BDD automation tools will be demonstrated, but all of the exercises are paper and white-board based. The course is suitable for the whole team, including Product Owners, Project Managers, and so on:

  • Business Analysts
  • Testers
  • Project Managers
  • Product Owners
  • Developers

This is above all a practical, hands-on workshop, involving around 70% lab exercieses.

The course is fully catered, with a tasty lunch as well as morning and afternoon snacks.

We also frequently run this workshop as a tailored on-site session adapted to your specific environment and requirements. Many clients prefer the flexibility of these on-site sessions. For more information, please contact us.

Since 2007, over a thousand students have benefited from John's on-site and public workshops. Here is what some students have been saying about John's workshops:
  • "Best development course I have been on in a very long time. Will seriously improve our development/build/test lifecycle." - Neil, Software Developer
  • "One of the best and most useful courses I have attended. And they didn't even try to sell me anything!" - Jonathan, Developer
  • "Greatly enjoyed the course. Provided many useful insights on how to introduce improved ways of working and how to incorporate new technology with new and 'legacy' projects." - Derek, Technical Team Leader
  • "Probably the best training course I've been on...ranges from a good overview to a detailed coverage, depending on need or preference. Was an excellent course." - Peter, Analyst Programmer
If you aren’t able to make your course date the following options are available to you:

You can send one of your colleagues in your place at no charge provided you inform us up to 10 working days prior to the course date. This allows us the time to make the adequate adjustments.


You can reschedule for another class up to 10 working days from the original course date.


You may request a full refund up to 30 business days from the course date. Cancellations made within 28 days from the course date will not be eligible for a refund.

Learning Corner

Upcoming courses