Test levels are a very practical model for structuring test activities. Each of these test levels covers a different part of the software and the development context.
The ISTQB defines a test level as “A specific instantiation of a test process.” This sounds quite abstract at first. Of course there is a test process at every level. I don’t think that does justice to the importance of test levels. For me, test levels are a core element of a test strategy. Why? The test levels differ massively from one another:
Each test stage is an important piece of the puzzle for quality success and should not be neglected.
A synonym for test level is test level.
The classic stages are: Unit test, integration test, system test and acceptance test. Integrations can take place at different levels, but they are tested differently. This is why there is a distinction between component integration testing and system integration testing. The levels build on each other logically, which is also the basis for the development of this model:
This division makes sense in most projects, but must of course be adapted to the circumstances.
In agile testing, we often use a model by Mike Cohn: the test pyramid. If you place it next to the test levels, you cannot deny a similarity. The test pyramid also distinguishes between different levels. In the original version, there were unit tests, service tests and UI tests. In the meantime, there are also countless derivatives. The test pyramid focuses more on the aspect of test automation:
I know developers who use both models and sometimes combine them. Like the test levels, the test pyramid is a concept with a few drawers. In everyday life, these models have to be questioned again and again.
For me, test levels are a cornerstone of the test strategy. At the start of a project, I always consider them in combination with the test types. This results in a matrix from which a large part of the test activities can be derived. This is an important point of reference for both classic and agile software development.
Functionality | Efficiency | Usability | ... | |
Unit Testing | x | x | ||
Integration Testing | x | |||
System Testing | x | x | x | |
... |
There are always two “aha” moments for everyone involved:
Test levels bring structure and clarity to software tests in everyday project work. I experience this time and time again. Another advantage is that this clarity can be achieved quickly. An overview of the test levels and test types relevant to the project can be created in an initial workshop. The added value of this is huge, a quick win for every project.