Popularly known as User Acceptance Testing (UAT) and sometimes referred to as Beta Testing, Acceptance Testing decides if the final product is useful to the end-user. Functional test determines whether a product work precisely in accordance with the specification. Acceptance test validates that the correct application was built and that it is what the customer actually needs. It can happen that an application passes all the functional tests and still fail acceptance testing. If a product works perfect but not useful the end-user, then the entire project was a failure! It is best that these issues are taken into consideration prior to a production release.
This type of testing is usually done in collaboration with the actual end-users and monitored by professional quality engineer. Normal scenarios used in acceptance testing will be the functions that is used on a daily basis. The color combinations, ease of navigation, whether necessary pages are present, how much time does it take for an action to be accomplished and is that within expected period of time. In one word does the product solve the problem it was designed to solve?
Environment is an essential fact that need to be considered in acceptance testing. It should be close to production or production itself, if that is possible. Usually, we try to keep away from production and do it in a similar environment. It is a smart step to validate the usability by a third party who wasn’t involved in its development.