End-to-End Testing is defined as a type Software Testing that not only validates the software system under test but also checks its integration with external interfaces. Hence, the name "End-to-End". The purpose of End-to-End Testing is to exercise a complete production-like scenario.
End to End Testing is usually executed after functional and System Testing.
Modern software systems are complex and are interconnected with multiple sub-systems
A sub-system may be different from the current system or may be owned by another organization. If anyone of the sub-systems fails, the whole software system could collapse. This is a major risk and can be avoided by End-to-End testing.