
The classic testing pyramid told us to write many unit tests, fewer integration tests and very few end-to-end tests. Tooling has shifted the economics, and the shape has changed with it.
Modern browser automation is fast and far less flaky, so a focused set of end-to-end tests on critical journeys is now affordable. Contract tests between services catch integration breaks without spinning up the whole system.
Ephemeral preview environments per pull request let product owners and testers verify changes before merge, catching issues that no automated test would.
What hasn't changed: tests are code. They need design, review and refactoring, and a slow or flaky suite is a production incident for your delivery pipeline.