The core purpose of E2E tests is to provide confidence that entire integrated components of the system work together in unison.
Common attributes of E2E tests:
- Often used to validate multi-step use cases
- Test cases often designed by business users
## Examples
- Browser automation
- HTTP API endpoint invocations
## Criticisms
- Complex to setup — require fully deployed system
- Very slow to execute
- Difficult to maintain: a change to the behaviour of a single component can require that all E2E tests covering this component are also updated
- Make it difficult to isolate the cause of a failure, just that "something is broken"
---
## References
- [Why should I write unit tests if I already have E2E tests? (Stack Overflow)](https://stackoverflow.com/questions/47483097/why-should-i-write-unit-tests-if-i-already-have-e2e-tests)