When end-to-end testing is carried out, it is the flow of activities in the system starting from scratch to the end of the system which are tested. On the other hand, in system testing, the system as a whole is tested to find defects, if any, in the system. In most cases, end-to-end testing is carried out after changes have been made to the system, while system testing is carried out towards the end of the software development, where the application is validated against the requirements of the end user.