This page is part of my personal knowledge database, that helps me to store and navigate my learnings.
Read on here for details

End-to-End Testing

In End-to-End Testing the functionality of a whole application is proved, by testing specific “flow” (pathway) within an application from start to finish.

End-to-End Tests are executed very late in the Test Pipeline, since they are very costly (take a long time to run, may require actual costly infrastructure to spin up, etc).

The effort to write and maintain End-to-End tests can be high, as they tend to be fragile due to their high complexity (involving many components, needing to synchronize steps in bootstrapping of resources, etc).

The gain / assurance-it-works from End-tp-End tests is very high, since they test a lot of stuff. However, they are not at all precise in what component failed, just that a component - or many components - failed the test.

End-to-End tests should always run on “production-like environments”.