End-to-end testing checks if the flow of the whole application works from start to finish. With end-to-end-tests you go through an entire process - usually a task or user behavior, like creating an account - from start to end. End-to-end tests are written to test whether the flow of an application is performing as designed from start to finish.
In an end-to-end test real user scenarios are (automatically) simulated. For example, if you perform an end-to-end test for a webshop, you can test the whole order process: searching for a product, choosing a product, and ordering and paying for a product.
Writing end-to-end tests helps front-end developers to improve the quality of the code and can prevent future changes from breaking functionality. Every time a new piece of code is written a new end-to-end test can be run to check if everything still works.
Where end-to-end testing tests the flow of a whole product, unit testing tests an isolated piece of the application.