End-to-end (E2E) testing verifies the complete application from the user's perspective — testing full workflows through the real system (UI, backend, database) as a user would experience them. It provides the highest confidence that the whole system works, but is slower and more brittle.
What E2E testing does
E2E tests verify COMPLETE user flows through the WHOLE system:
→ simulate a real USER: open the app, click/type, navigate, submit, verify results
→ exercise the FULL stack: UI → backend → database → and back (everything integrated)
→ e.g. "user logs in, adds an item to the cart, checks out, sees confirmation"
→ tests the app as users actually experience it.
