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?