Beyond unit testing: Writing automated tests for every layer of your application

Anders Rabo Thorbeck

Short talk - in English

Unit testing is a well known and widely followed practice these days. But how do you go about testing the functionality that spans the borders of your application? How do you test your database constraints, your database access code, your API endpoints, and the interoperability between your different independently deployed services?

This talk presents a compilation of different methods you can use to write tests for every aspect of your application:
* dependencies to your application,
* all the layers within your application, and
* your application's dependencies to other services (with a special focus on databases).
It will be structured somewhat like a cookbook, with concrete examples provided.

This talk will be useful to anyone who would like to learn more about the non-trivial parts of writing automated tests for backend services. It represents half a decade's worth of hard-earned knowledge from real test use cases. The talk may be particularly enlightening to junior developers, but more experienced developers will likely also stand to learn a thing or two. The examples will be in Java, but the approaches should be applicable in other backend languages as well.