What Is It?
Testing flows from “end-to-end.” For a website, this might mean from placing an order, to checking out, to returning an item. End-to-end testing is focused on mimicking “real life” use cases. End-to-end testing increases confidence in the stability of the app or product, but it can be difficult to quantify each “end,” and is thus costly and time intensive.
When Should it be Done?
Depends on factors previously discussed with the client (doing End-to-end testing after each relevant iteration gets expensive, but it might be necessary for a high-risk application)