Purpose and timing of UAT in the delivery lifecycle
Key Takeaway
UAT is the last stage before go-live. End users test in a sandbox or test environment, after the technology team's testing, to confirm that the solution delivers what the business originally requested and is ready for business use.
User acceptance testing (UAT) is testing done by end users in a sandbox or test environment. UAT confirms that a project or enhancement works as intended and delivers what the business originally requested. Because UAT is the last stage before go-live, its result decides whether the release goes to production.
What UAT confirms
UAT checks the solution against what the business asked for. The goal is to confirm that what was originally requested is actually delivered. UAT also certifies that the system is ready for business use.
Functional tests and UAT check against different things:
| Functional tests | UAT | |
|---|---|---|
| Checks against | The technical requirements | What the business asked for |
| Purpose | Verify that features work as defined | Give end users the chance to accept or reject the final feature delivery |
If the project is small...
Functional testing can be merged with UAT.
If the org has no custom code...
Functional and UAT testing can be done manually.
Finding gaps during UAT is a good outcome, not a failure, because catching gaps is the purpose of UAT. A bug found and fixed in the test phase costs much less than a bug fixed in production.