"End to end" testing is where you make an assertion that involves one complete "path" through the logic of the system. That is, you start up the whole system, perform some action at the entry point of user input, and check the result that the system produces. You don't care how things work internally to accomplish this goal, you just care about the input and result. That is generally true for all tests, but here we're testing at the outermost point of input into the system and checking the outermost result that it produces, only.
An example end to end test for creating a user account in a typical web application would be to start up a web server, a database, and a web browser, and use the web browser to actually load the account creation web page, fill it in, and submit it. Then you would assert that the resulting page somehow tells us the account was created successfully.
The idea behind end to end testing is that we gain fully accurate knowledge about our assertions because...