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.
Since 2018 I have been offering coaching and training in TDD and good test practices. I have run a two day TDD course at conferences such as CppCon, NDC TechTown, ACCU and others, as well as onsite for teams at companies within various industries - including gaming, video streaming and audio. During the coronavirus pandemic I continued to offer these courses remotely and feel that this can still be a very effective approach.
I can also provide more customised training based on this material - tailored to your needs.
Topics covered (depending on time and preference) include:
- What is a test, and what different roles can it play?
-
What is TDD?
- The TDD Cycle
- The art and craft of TDD
- The psychology of TDD and maximising mental flow states
-
Code coverage
- 100% code coverage (and it’s not enough)
- Beyond 100% code coverage
-
TDD is a design tool, rather than a complete testing strategy
-
Other forms of testing
- Property Based Testing
- Mutation and Fuzz Testing (high level)
- Mocking and Faking (pros and cons)
- Integration/ system/ acceptance testing
- BDD
-
Testing at the right level
- Fast feedback cycles
- Avoiding slow, flakey or brittle tests
- Testing implementation details
- Why you usually shouldn’t
- When it might be OK, and how to do it properly
-
Working with legacy code
- Techniques and practices for getting (some) legacy code under test
- Approval tests
- Working with singletons
-
Exercises
- We'll do at least three (usually four) exercises
If you'd like to book something, or to find out more, please send me an email