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)