Hi all,

This month's issue is about a topic we've wanted to cover for a long time: Testing.

Automated testing is a disputed topic; some people love it, while other people hate it. But testing has many different aspects, and we hope that this issue — no matter what camp you're in — will offer something that helps you improve the quality of your projects.

We will take look at the umbrella term of 'testing' from many different perspectives to give you a broad overview of all the different techniques involved. We start out with a look at what behavior-driven development is about and how to use it. Then we'll explore learnings from using Apple's XCTest toolchain. Next, we will dive into dependency injection and how it relates to testing. If you've ever wondered about bad testing practices, we have you covered, too. Mocking is another common tool in the toolbox when writing tests, so we'll take a look at that. Finally, we finish off with two articles about testing related to user interface code: user interface testing and snapshot testing. Thanks to all the authors for contributing their experience in this field!

Happy testing,

Chris, Daniel, and Florian.