Reshot

High-intent use case

Critical User Journey Testing

Test complete release-critical outcomes across declared state, retained evidence, failure classification, and attributable Review.

Critical user journey testing verifies that a complete customer or business outcome still works under the states that matter to a release. It goes beyond replaying browser steps by declaring the intended consequence, retaining evidence of what happened, classifying failure honestly, and recording the resulting Decision.

What makes a user journey critical?

A Journey is critical when its failure would materially harm a user, revenue, access, trust, support load, legal obligation, or release readiness. Criticality comes from product consequence, not from how many steps the automation contains.

Common examples include:

  • account creation, authentication, and recovery;
  • invitation, membership, and role changes;
  • checkout, subscription, billing, or entitlement changes;
  • creation, approval, publication, or revocation of customer-facing work;
  • privacy requests and destructive account actions;
  • the primary outcome promised by a core product capability.

A long tour of low-consequence screens may be less critical than a three-step password recovery Journey.

Journey testing versus an end-to-end test case

An end-to-end test case normally owns executable setup, actions, and assertions. A maintained Product Journey owns the broader product contract.

Test case concern Product Journey concern
Can the automation execute the path? Does the intended customer or business outcome hold?
Which assertion passed or failed? Which checkpoint, state, evidence, and failure class explain the result?
Which test data was prepared? Which State Capsule makes actor, plan, flags, data, clock, and side effects explicit?
Which artifact was attached? Which immutable Observation retains evidence and privacy treatment?
Did CI pass? Who made the attributable Decision and what release consequence followed?
Which baseline changed? Which documentation, support, demo, training, or launch output is now affected?

The test remains useful execution work. The Journey gives it stable product meaning and downstream lineage.

Step 1: inventory outcomes, not screens

Start with the small set of outcomes a release cannot afford to misunderstand. Interview product, engineering, QA, support, documentation, and operations about real consequences rather than asking for every available test.

For each candidate, record:

  • actor and owning team;
  • intended result;
  • primary failure consequence;
  • dependencies and external recipients;
  • release criticality;
  • customer-facing explanations that depend on the outcome.

Do not expand into every branch or context yet.

Step 2: write an outcome checkpoint

The checkpoint must prove the consequence, not just the final interaction.

Weak checkpoint: “The confirmation page is visible.”

Stronger checkpoint: “The order exists for the intended buyer, payment state is correct, inventory was updated under policy, and the confirmation identifies the right order.”

The browser page can still be evidence, but it is no longer the only definition of success.

Step 3: declare representative state

Use a State Capsule to define the role, permissions, plan, data, flags, authentication, locale, timezone, theme, viewport, clock, and side-effect boundaries required by the Journey.

Choose contexts because they change product meaning. Avoid a full combinatorial matrix created only to make a coverage report look comprehensive.

Read Stateful End-to-End Testing for implementation patterns.

Step 4: choose the right authoring path

Developers can preserve native Playwright work, define Journeys in code, use the CLI, or import compatible tests. Non-developers can use repository-free recording and visual editing where the current product path supports it.

Both paths must preserve shared Journey semantics. Protected code constructs remain visible and conflicting edits create attributable revisions rather than silent last-write-wins changes.

Step 5: execute one immutable Journey Version

Every material change creates a Journey Version. A Run binds that version to the selected State Capsules, runner, environment, and attempt history before execution.

The Run can then retain functional, visual, accessibility, target, product-state, console, network, provenance, and privacy evidence in one timeline.

Step 6: classify the actual failure

Critical Journey testing becomes unreliable when every red result is called a product bug or every retry is called self-healing.

Classify the evidence:

  • Product: the intended result did not occur.
  • State: actor, data, plan, permission, flag, or clock differed from the contract.
  • Target: automation could not identify the intended interface reliably.
  • Infrastructure: runner, browser, provider, or bounded network execution failed.
  • Policy: the requested action or side effect was not permitted.
  • Privacy: evidence could not be retained or delivered under policy.
  • Recipient: the wrong user, workspace, role, or destination received the consequence.

Retry only when the class and policy justify it.

Step 7: record the Decision

An immutable Observation shows what happened. Review uses it to record an attributable Decision: approve, reject, repair, except, or apply a release consequence.

Discussion and AI proposals are not Decisions. The authorized action retains its actor, rationale, policy, expiry, supersession, and owning-object consequence.

Step 8: trace downstream impact

A changed Journey can make more than tests stale. Documentation screenshots, step guides, support procedures, walkthroughs, training, demos, marketing visuals, and captioned product video may all depend on the earlier state.

Renditions keep those explanations editable while preserving source evidence. Publications retain delivery receipts and freshness. The release can then show which outputs remain current and which require Review.

Example: invite a teammate

Outcome

The intended person receives and accepts an invitation for the correct workspace and role.

Representative contexts

  • owner with available capacity;
  • admin with invitation permission;
  • owner at the plan limit;
  • recipient who already belongs to the workspace;
  • localized invitation and right-to-left layout where supported.

Evidence

The Run retains the invitation request, recipient and role state, visible confirmation, accessibility state, relevant network result, privacy treatment, and acceptance consequence.

Decisions

An intentional copy change may be approved while the connected support procedure is marked for refresh. A role mismatch is a product or recipient failure and cannot be retried into a green result.

Example: complete checkout

The Journey should not pass solely because a success page rendered. It must verify the correct buyer, order, payment state, currency, inventory or entitlement consequence, confirmation identity, and bounded side effects.

A failed third-party payment sandbox may be infrastructure. An order created for the wrong account is a recipient or product failure. The distinction determines whether retry, repair, or release blocking is appropriate.

What to measure

Avoid using raw test count as the main coverage metric. Track four separate ratios:

  1. critical Journeys with current outcome evidence;
  2. declared contexts with current verified evidence;
  3. critical Journeys with attributable current Decisions;
  4. affected outward outputs connected through lineage.

Use Critical Journey Coverage for the method and the Journey Coverage Calculator to expose the largest current gap.

When to use other testing methods

Critical Journey testing does not replace:

  • unit and property tests for local logic;
  • API and contract tests for service boundaries;
  • component tests for focused UI states;
  • performance, security, resilience, and load testing;
  • exploratory usability research with real people;
  • qualified manual accessibility evaluation.

It connects the small set of complete outcomes whose release consequence crosses those methods and teams.

Start with one Journey

Select one release-critical outcome, define the checkpoint, declare representative state, and execute it before creating a large inventory. Review the evidence and Decision quality, then add contexts and adjacent Journeys where a real gap exists.

Explore Journeys, see the QA solution, or evaluate the current system with the Journey Coverage Calculator.

Start with one release-critical Journey.

Define the outcome, declare its state, run it, inspect the evidence, and record the Decision before expanding coverage.