• Home
  • BVSSH
  • Engineering Enablement
  • Playbooks
  • Frameworks
  • Good Reads
Search

What are you looking for?

Practice : End-to-End (E2E) Testing

Purpose and Strategic Importance

End-to-End (E2E) Testing verifies that the entire application stack works together as expected from a user's perspective. It simulates real-world scenarios, covering key workflows across frontend, backend, databases, and integrated services.

E2E testing plays a vital role in identifying regressions, validating business-critical paths, and ensuring system reliability. It is especially important in complex systems where individual component tests don’t guarantee user-facing correctness.


Description of the Practice

  • E2E tests mimic real user actions and run against a fully integrated system.
  • Tests validate complete workflows, such as login, checkout, or data entry.
  • E2E suites are automated and executed before major releases or as part of nightly builds.
  • Tools like Cypress, Playwright, Selenium, and TestCafe are commonly used.
  • E2E tests often require stable test environments with controlled test data.

How to Practise It (Playbook)

1. Getting Started

  • Identify the most critical and high-risk user journeys in your application.
  • Choose an E2E testing tool that fits your stack and developer workflow.
  • Write a small number of smoke tests to validate basic functionality.
  • Run E2E tests in a controlled environment as part of your CI pipeline.

2. Scaling and Maturing

  • Expand coverage to include edge cases and failure scenarios.
  • Implement parallelisation and selective test execution to manage test suite time.
  • Use synthetic data or seeded environments to isolate test outcomes.
  • Monitor test flakiness and investigate underlying causes regularly.
  • Visualise E2E test trends and integrate with release readiness dashboards.

3. Team Behaviours to Encourage

  • Maintain E2E tests as shared assets owned by both engineering and QA.
  • Review E2E coverage when planning new features or changes.
  • Treat flaky tests as technical debt - investigate and resolve root causes.
  • Collaborate across roles to keep tests meaningful and user-focused.

4. Watch Out For…

  • Long, slow test suites that block fast feedback and continuous delivery.
  • Tests that break due to UI or implementation changes with little user impact.
  • Over-reliance on E2E testing at the expense of unit or integration coverage.
  • Environment drift or shared test data that causes false failures.

5. Signals of Success

  • Teams rely on E2E tests to catch regressions before release.
  • Business-critical paths are covered and tested automatically.
  • Flaky tests are rare and triaged quickly.
  • E2E tests are fast, maintainable, and reflect real user behaviour.
  • E2E testing contributes meaningfully to release confidence and system quality.
Associated Standards
  • Access design is reviewed whenever system boundaries change
  • Failure modes are proactively tested
  • Failure patterns are used to inform architectural investment
  • Learnings from incidents are turned into engineering improvements
  • Major incidents are followed by timely, blameless reviews
  • Operational readiness is tested before every major release
  • Tests provide meaningful confidence in code changes

Technical debt is like junk food - easy now, painful later.

Awesome Blogs
  • LinkedIn Engineering
  • Github Engineering
  • Uber Engineering
  • Code as Craft
  • Medium.engineering