User Acceptance Testing

Go to previous article – White-Box Testing

What is User Acceptance Testing?

User acceptance testing is one of the most essential parts to any piece of software under development because if implemented correctly it can save the project not only time but also money– all while improving the customer satisfaction rate.

This testing method is usually performed by the client or end user (or both in some cases) and is used to verify the system performs at the level agreed upon between the client and developer.

User acceptance testing is one of the last phases before moving on to production and the market. Without being user acceptance tested, the product could be a total dud and crash in the market; real life feedback is critical to the product’s success.

Developers code the software per requirements from the client but they also rely on their own understand of what the client wants without any real specifics. Requirements for the software may also change during the development process and if not communicated effectively to the developing team the end product may not be what the client actually expected; this is how communication errors occur.

While other forms of testing may focus on cosmetic, spelling, or system errors, User Acceptance Testing – UAT – does not.

The main purpose of UAT is to confirm the end to end flow. User acceptance testing is also a type of black box testing; many times it will involve two or more end users and their interaction scenarios.

There are a few requirements that should be satisfied before user acceptance testing can take place:

  • The business requirements must be settled on
  • Code for the application should be fully developed
  • Unit, integration, regression, and system testing should be completed
  • ONLY cosmetic errors are acceptable before user acceptance testing
  • The UAT environment should be ready
  • All defects in the system should be resolved or documented
  • Sign off that the system is ready to be user acceptance tested


There are a few types of testing that fall under the user acceptance testing category, and which type is being performed depends on who is doing the testing:


  • Internal acceptance testing– This is usually performed by the members of the organization that created the software, but not by the actual creators themselves.
  • Customer acceptance testing– If software was developed by a company but owned by a customer, this type of testing may take place. In this case it is the customer himself/herself who does the testing.
  • Operational acceptance testing– This is also known as operational readiness testing, as the testing here is done to ensure the processes of the software are ready to be used by the public. Checks are done on back-up facilities, maintenance procedures, security procedures, and other performance related aspects to the software.
  • In addition to this you may run also Beta Testing – Providing customers the option of accessing the software to “try it” before it is formally released to the market. This provides a wider audience with access to the system and results on more peculiar bugs being reported.

Before any of the UAT methods can be performed, there are a few steps that must be followed:

  • The UAT plan must be outlined
  • Test cases must be designed to cover every functional process in real-world usage scenarios
  • Execute the test cases and closely document results
  • Respond to the bugs found and correct them
  • Sign off on the application to indicate it is ready for market

Good Luck!


Go to next article – Unit testing introduction


You might want to read also about:

Share This Post

2 Comments - Write a Comment

  1. Hi there, simply turned into alert to your weblog via Google, and found that it’s really informative. I’m going to be careful for brussels. I will be grateful in case you proceed this in future. Many other people might be benefited out of your writing. Cheers!

Post Comment

Show Buttons
Hide Buttons