I am posting this question on this forum considering many of your are programmers and hopefully will know the testing procedure. This is in "off-topic" as it is not directly java related.

This is for revision.
In the specification for my exam board, there are apparently 3 types of testing for a new system; alpha, beta and acceptance.

I know alpha is in-house testing of individual procedures. Beta is out-of-house testing by potential users for the program as a whole. But what is acceptance?

My textbook says testing carried out by the end user (So not just potential users). It is apparently to see whether or not the program works the way that the users want rather than merely "does it work".

I cannot really see a difference between this and beta though. Although the definitions are slightly different, wouldn't the acceptance testing be covered by the beta test? Users would report both whether it works and whether it works as they want at the same time, during the beta, right?

Would a free-trial be a form of acceptance testing? This way, it is not a beta as the program is built, but the users is still testing the program before actually buying it?