2 Days: TDD and legacy code testing
Would you like to make software development more predictable? And more fun? Automated testing is a key element of effective software delivery (Accelerate, 2018), and when taken seriously can be more challenging than ‘real’ code.
This workshop takes a hands-on approach to TDD and automated testing of existing systems. You’ll spend about half of the workshop time doing programming exercises (sometimes with other people). The exercises are lightweight katas and similar, but we will not forget the real world. Before or after the exercises, we will cover how a particular technique or topic fits in professional environments.
The first day focuses on test-driven development. It covers the general technique, as well as Test Doubles. The second day focuses on how to work with automated testing in existing code bases.
In most hands-on exercises you start from scratch, so you can pick any language you like. (If you run into trouble, I can only help you with C#, F#, and maybe Haskell). Code examples and demos are in C#, as is one hands-on exercise. (The C# exercise will ask you to refactor a simple piece of C# code. If you can read C#, you can probably also translate it to another language, if you prefer.)
Bring a laptop with a development environment you know how to use. You should know how to write and run basic unit tests. You’re also going to need a Git client and a GitHub account. (I’m not going to ask you to contribute anything, but you will need to clone a repository.)