An End-to-end test is a form of automated test which verifies the behaviour of a [[System under test|SUT]] by automating requests to its public interface (e.g. a REST or GRAPHQL API endpoint or front-end website UI).
## #OpenQuestions
- What's the difference between [[Integration testing|integration]] and E2E tests?
- [Interesting answer](https://twitter.com/kyleshevlin/status/1508839313269690370?s=21&t=W9yLgbjskKuNZ9d8we3T9Q):
> Unit tests: - Is the door solid - Do the hinges swing back and forth - Does the latch lock
> Integration test: - Does the door open and close in its jamb - Does the door lock
> E2E test: - Can someone use the key to open the door lock and get to the other room
- More specific question: Is a test which invokes a single deployed API endpoint over HTTP and verifies its response (and maybe checks the database too), an integration or an E2E test?