Understanding the terms of testing
First, let’s get some of the definitions out of the way before we continue. Let’s start with the types of tests:
- Unit tests: Unit tests involve testing every function individually and making sure that, given a certain expected and unexpected input, the function responds with an expected output or a graceful error.
- Integration tests: Integration tests are a higher level of testing than unit tests and often involve various modules for each scenario. Some integration testing scenarios might involve various functions and modules that make sure these functions work well in tandem to deliver certain functionality.
- End-to-end (E2E) tests: These tests provide the highest level of testing, which often involves running test scenarios against a live system.
- Regression testing: These types of tests are run to find inconsistencies and broken behavior when the system changes.
I won’t go about arguing the case for...