In modern systems built around APIs, microservices, and cloud infrastructure, end-to-end testing becomes less about test volume and more about validating critical workflows.
From my experience, the key is to focus on real user journeys rather than trying to cover every edge case end to end. Unit and integration tests already handle most logic validation. End-to-end tests should answer one simple question: Can a real user complete an important task successfully?
A good approach usually includes:
Identifying 5–10 business-critical workflows
Testing only stable, high-impact paths
Avoiding deep assertions on internal implementation
Running these tests in environments close to production
In practice, e2e testing helps teams validate how frontend requests, backend services, APIs, databases, and third-party integrations work together under real conditions. This often surfaces issues like broken contracts, configuration problems, or dependency failures that isolated tests miss.
The biggest mistake I see is trying to replace unit or integration tests with end-to-end tests. E2E works best as a final confidence layer, not the foundation of the testing strategy.