I'm a bit confused about the real difference between system testing and acceptance testing. When I search this topic the answers differ and I fail to see how the testcases can be vastly different.
Facts I've discovered:
System testing is conducted on the complete system and is done by the supplier. System testing is end-to-end testing where you test complete flows in the system (from login to logout) based on the requirement spec (both functional and non-functional).
Acceptance testing is done by the customer to verify that it meets the customers demand. This is also complete flows and is based on the requirement spec. HOWEVER the system that is built was designed based on the requirement spec and the apperance/usability is usually already accepted in the earlier stages of the development cycle. If the system covers the requirement specification it should not be possible for the client to say "this is not what we wanted, redo this and that", unless ofcourse the contract allows this and the customer is paying per hour.
So, my question is basicly, how would the test cases for these two test phases differ? Both of them is end-to-end testing and focuses on that it is a functional system and it satisfies the specification, which in extent is also the business needs (since it's what they have ordered). It seems as if the test cases from the system testing can be reused in acceptance testing as they both coveres complete flows?