A product can pass every automated test and still fail on launch day because the people who have to use it can't do their job with it. User acceptance testing (UAT) is the last check before release: real users, or people who represent them, confirm that the software supports the business process it was built for.
This guide covers what UAT is in project management, how to prepare for it, how to perform UAT testing step by step, and how to manage test cases, defects and sign-off so the final weeks of a project stay under control. The core advice from our original 2022 article still holds. The tooling and release cadence have changed, and many teams now ship continuously instead of in one big release.
What is UAT in project management?
In project management, UAT is the formal phase in which the business decides whether the solution is acceptable. The delivery team does not make that call. UAT comes after system and integration testing and before the production release or go-live, and it ends in a decision: accept, accept with known issues, or reject.
Here UAT differs from QA. QA asks "does the software work as specified?" UAT asks "does the software let us run our business the way we need to?" A feature can match its specification exactly and still be unusable because the specification missed a real-world step, a data format or a permission rule.
UAT also goes by end-user testing, acceptance testing or, in some contexts, beta testing. In contract-based projects it often carries legal weight, since acceptance triggers payment milestones or starts a warranty period. For that reason project managers run it as a formal gate with clear entry and exit criteria, and they don't treat it as an informal demo.
Why UAT still matters in 2026
Automated tests, AI-assisted test generation and CI pipelines catch far more defects than they did a few years ago. They still can't replace UAT:
- Automated tests only check what someone thought to check. Users bring workflows, edge cases and habits that nobody wrote down.
- Usability affects business results. In QA terms, a process that takes eight clicks instead of three isn't a bug, yet it can kill adoption.
- A signed acceptance protects both the client and the vendor. Without one, arguments of the "this is not what we asked for" kind drag on for months.
A problem found in UAT is also far cheaper to fix than one found after release, when it comes with support tickets, data clean-up and damage to your reputation.
Pre-UAT testing: what must be true before you start
Plenty of UAT cycles fail before they start because the build isn't ready. Pre-UAT testing is the set of checks that confirm the system is stable enough to put in front of business users. Agree on these entry criteria early and go through them in a short readiness review:
- System and integration testing are finished, with no open critical or high-severity defects.
- The UAT environment is close to production: the same configuration, integrations connected (or realistic sandboxes), and production-like data, anonymised wherever personal data is involved.
- Every tester has a user account and role with the same permissions they will have in production.
- Test cases are written, reviewed by the business and loaded into whatever tool will track them.
- A smoke test on the UAT environment passes. Users can log in, reach the main screens and complete one basic flow.
- Known limitations are written down, so testers don't spend time reporting them.
A half-ready build wastes the testers' time and costs you their trust. Business users who hit three crashes in the first hour stop testing carefully.
How to perform UAT testing step by step
The five stages from our original article still make up a good UAT process. Here they are, with the details that make them work in practice.
1. Plan the UAT
Write a short UAT plan. It should say what is in scope, who tests, when and where, on which environment, how defects get reported and triaged, and what the acceptance criteria are. Agree on severity levels and on what "accepted" means, for example "no open critical or high defects, and an agreed fix date for every medium defect". Book the testers' time early. Business users have day jobs, and UAT usually slips because they aren't available.
2. Design test cases and scenarios
Build test cases around business processes and the acceptance criteria in user stories, and not around screens. A good UAT scenario follows a real task from start to finish, such as "a new customer signs up, verifies their email, places a first order and receives an invoice". Each case lists the steps, the test data and the expected result. Write them in the users' language, without technical jargon. Add negative cases (wrong input, missing permissions) and the rare but important ones, like month-end processing or refunds.
3. Build the UAT team
Testers should be real end users or people who know the work closely. Depending on the product, that might mean operations staff, account managers, finance users or clinicians. Mix experienced and less experienced users to see whether the product works for both. Developers and QA engineers shouldn't do the testing, but they should be on call to help and to reproduce issues quickly. Name one business owner with the authority to sign off.
4. Execute and document
Start with a short kick-off session, then let users work through the scenarios. Encourage exploratory testing as well, because users doing what they would do on a normal day often find the most useful problems. Log every issue in one shared place with steps to reproduce, expected and actual results, and a screenshot or recording. A daily triage meeting sorts each report into a defect, a change request, a training issue or "works as designed".
5. Fix, retest and sign off
The delivery team fixes defects in priority order, deploys to the UAT environment and asks whoever reported each issue to retest it. Before sign-off, run a final regression pass on the critical flows. The business owner then signs a short acceptance record listing what was tested, the results and any open issues they accepted, with agreed dates.
UAT test management: tools and tracking
UAT test management means keeping cases, results and defects in one visible place, so everyone knows where the project stands. A heavy tool isn't necessary. Most teams pick one of these setups:
- The issue tracker the team already uses, with a test management add-on or just a "UAT" issue type and board.
- A dedicated test management tool, when there are many test cases, several cycles or audit requirements.
- A shared spreadsheet for small projects, provided defects still go into the tracker and nobody keeps a private list.
Whatever you choose, check a few numbers every day: test cases executed against plan, pass rate, open defects by severity and defects waiting for retest. They tell the project manager whether the go-live date is realistic well before the last day.
| Role | Responsibility in UAT |
|---|---|
| Business owner | Defines acceptance criteria and signs off |
| Project manager | Plans the cycle, runs triage, reports status and risks |
| End-user testers | Execute scenarios, explore, log findings |
| QA lead | Prepares cases and data, helps testers, verifies fixes |
| Developers | Reproduce and fix defects, deploy to the UAT environment |
UAT in agile and continuous delivery
When you release every sprint or every day, a single big UAT phase at the end doesn't fit. Agile teams usually spread acceptance across the work. The product owner accepts each story against its acceptance criteria during the sprint, and a short UAT cycle with real users runs before major releases or before a feature behind a feature flag is switched on. Staging environments, preview builds for each change and feature flags let users try new functionality in real workflows before everyone else sees it. The principles stay the same: real users, real scenarios and a clear decision at the end.
UAT for operational technology and regulated systems
UAT in operational technology (industrial control software, building management, logistics or manufacturing systems) needs extra care, because a failure can stop physical operations. Teams usually add factory acceptance tests at the vendor, site acceptance tests in the real environment, testing against simulators before live equipment is connected, explicit safety and fallback scenarios, and formal sign-off from the operations and safety owners. Regulated software, for example in healthcare or fintech, also needs traceability from requirements to test cases to results, since auditors may ask for it.
UAT best practices and common mistakes
- Don't let the client skip UAT. When the business says "just test it yourselves", explain that the delivery team can't see the issues users will run into. If UAT is skipped, everyone pays for it after launch.
- Keep the delivery team close, without letting it control the outcome. Its job is to help users and fix issues, and the results belong to the testers.
- Keep defects and change requests apart. New ideas are welcome, but they go to the backlog unless the business owner explicitly adds them to the UAT scope.
- Use realistic data. Testing with "test test 123" hides problems with long names, special characters and real volumes.
- Plan time for retesting. If a UAT cycle has no room for at least one fix-and-retest round, it will slip.
- Record the decision in writing. An email saying "looks fine" doesn't count as acceptance.
If UAT keeps turning up basic functional bugs, the problem lies earlier in the process. With a disciplined development process and proper QA, UAT can concentrate on whether the product fits the business, which is where it is most useful.
FAQ
What is the difference between UAT and QA testing?
The delivery team runs QA testing to check that the software works as specified. Business users run UAT to confirm that the software supports their real processes and can be released.
Who is responsible for UAT?
The business owns UAT and the acceptance decision. The project manager organises it, and the delivery team supports the testers and fixes defects.
How long should UAT take?
That depends on scope. A small release may need a few days, while a large system can need several weeks and more than one cycle. Always leave time for fixes and retesting.
What happens if UAT fails?
Either the team fixes the blocking defects and runs another cycle, or the business accepts the release with documented known issues and agreed fix dates. If it happens before launch, a failed UAT is a warning you can still act on.
If you are planning a release and want a partner who builds acceptance into the process from the first sprint, talk to the EmphaSoft team. We have delivered 400+ projects since 2010 and can help you set up UAT that gets you to go-live with confidence.
