End-to-End Testing

E2E

What it is

An end-to-end test drives the whole system the way a user does — through the real interface, against real services — and checks that the outcome is right. The boundary here is the outermost one, and nothing is stubbed. A unit test isolates one piece and an integration test joins two real pieces; an end-to-end test is the only kind that can tell you the assembled product works at all.

Why it matters

Every other test level assumes the parts are wired together correctly. Configuration, routing, authentication, serialisation between the front end and the back end, and the deployment itself are all outside their view. That is why features pass every unit test and fail the moment a real user tries them. End-to-end tests cover exactly that gap. They are slow, they are expensive to maintain, and a small number of them protects the journeys that matter most.

In this track

  1. Driving the system like a user (01-cs-fundamentals/26-end-to-end-testing/01-driving-the-system-like-a-user) — picking the journeys worth covering and interacting through the real interface.
  2. Making end-to-end tests trustworthy (01-cs-fundamentals/26-end-to-end-testing/02-making-end-to-end-tests-trustworthy) — removing flakiness, seeding data, and reading the failures when they come.

Prerequisites

Go deeper