If you are a good developer/tester you probably ask yourselves these questions 🙂
- How many tests of each type should I have?
- Do I need to write more unit tests?
- Do I need to have less e2e tests?
Well luckily, we have the test pyramid below that can be used as a guideline for how many tests, roughly, you should have of each type. It is fairly self-explanatory; have a lot of unit tests and very few e2e tests. Why you ask?
Unit tests are cheap in terms of power/CPU usage/processes etc and e2e tests are the opposite. Unit tests give you fast feedback and tell you exactly where an issue is if one occurs. With an e2e test this is much more difficult. Because an e2e test most likely is using all the clients and services (or at least two or three), you have to dig more into the code to figure out what is going on.
The test pyramid also highlights testing strategies. This is called ‘Bottom Up’, i.e.
- Test the domain
- Tests closer to the code
- Integrate early
- Use mocks or stubs
- Visualise test coverage