Different levels of testing
As we described before, tests should cover different elements of the system. This means that a test can address a small or big part of the system (or the whole system), trying to reduce its range of action.
When testing a small part of the system, we reduce the complexity of the test and scope. We need to call only that small part of the system, and the setup is easier to start with. In general, the smaller the element to test, the faster and easier it is to test it.
We will define three different levels or kinds of tests, from small to big scopes:
- Unit tests, for tests that check only part of a service
- Integration tests, for tests that check a single service as a whole
- System tests, for tests that check multiple services working together
Names can actually vary quite a lot. In this book, we won't be very strict with definitions, instead defining soft limits and suggesting finding a balance that works for your...