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.