The End of End-to-End Testing

End-to-end testing (or system testing) tests a completely integrated system to verify that it meets its requirements. In a blog post, Mike Wacker from Google explains why if this testing strategy sounds good in theory, it goes wrong in practice.

The blog post starts by remembering what are the reasons to perform end-to-end testing. This is mainly because tests that simulate real user scenarios can help to easily determine how a defect could impact the user. To explains why this doesn’t work in practice, Mike Wacker presents an example based on his own experience. He explains that failing tests do not benefit the users, but only fixing bugs provides benefits. His advice is that “Thus, to evaluate any testing strategy, you cannot just evaluate how it finds bugs. You also must evaluate how it enables developers to fix (and even prevent) bugs.”

He presents then the famous testing pyramid and explains why you should focus on unit tests rather than system tests. His conclusion is that “As a good first guess, Google often suggests a 70/20/10 split: 70% unit tests, 20% integration tests, and 10% end-to-end tests. The exact mix will be different for each team, but in general, it should retain that pyramid shape.”

Read the complete blog post on