Testing, TDD and Catch2


As the original author of the C++ test framework Catch, now Catch2 as well as the Swift test framework front-end, Swordfish, I have a long history with automated testing in C++ and other languages.

I now offer coaching and training in TDD and good test practices. For the last few years I've been running a two day TDD course at CppCon and NDC TechTown, as well as some other conferences as a one day version. During the coronavirus pandemic I have continued to offer these courses remotely.

I can also provide training based on this material - but tailored to your needs - directly to your company or organisation.

Topics covered (depending on time and preference) include:

  • What is a test?
  • Types and roles of tests.
  • How to write good tests (and avoid writing bad ones).
  • What are the benefits of writing tests first?
  • The TDD cycle
  • The art and craft of TDD
  • The psychology of TDD and maximising mental flow states
  • How TDD slows you down
  • How TDD makes you go faster!
  • Design principles that are related to testing
  • Deliberate practice
  • The transformation priority premise
  • BDD
  • Property based testing
  • Mutation and Fuzz testing (not in depth)
  • Mocking and faking (pros and cons)
  • Addressing slow, flakey and brittle tests
  • Should you test private implementation?
  • How do you test singletons?
  • When should you not write tests?
  • Working with legacy code


If you'd like to book something, or to find out more, please send me an email