User acceptance testing (UAT)
User acceptance testing (UAT) is the final validation stage where the people who asked for the software confirm it does what they need before it is released. It asks whether the software solves the problem, not whether the code is correct.
The longer version
Every earlier testing stage asks a version of the same question: does the software behave as specified. UAT asks a different one: was the specification right. That is why it is performed by business users or clients rather than by the engineers or the QA team, and why it cannot be fully replaced by automation. A feature can pass every automated test and still fail UAT because it solves a problem the user does not have.
It usually runs against a production-like environment, often staging, with acceptance criteria agreed in advance. Those criteria are what make the outcome a decision rather than an opinion: without them the session collects impressions, and the release argument becomes a matter of who felt most strongly.
Alpha testing and beta testing are neighbours of UAT rather than shapes of it. Alpha testing puts a build in front of testers who did not build it, unscripted, in a controlled environment; beta testing puts it in front of real users in their own environment, where it meets conditions no one on the team thought to construct. Both ask whether the product holds up in use, while UAT asks whether the people who commissioned it accept it against criteria agreed in advance. Contractual and regulatory acceptance testing sit beside UAT as its siblings within the same test level, and their criteria come from a contract or a regulation instead of from what the users need day to day.
The failure mode is running it too late. UAT scheduled for the week before a release turns any real finding into a choice between shipping something known to be wrong and missing the date. Teams that get value from it put users in front of the work while the answer can still change what gets built.
Common questions
What does UAT stand for?
UAT stands for user acceptance testing. Acceptance testing is a test level with several forms, and UAT is the one run by the people who will use the software, beside operational acceptance testing, which checks that the system can be run and supported, and contractual acceptance testing, which checks the terms of an agreement.
Who performs user acceptance testing?
The people who will use the software or who commissioned it: business users, clients, or a product owner representing them. Not the engineers who built it and not the QA team, both of whom have already verified that it behaves as specified. UAT exists to check that the specification itself was right.
What is the difference between UAT and QA testing?
QA testing verifies the software against its requirements: does it do what it was specified to do. UAT validates the requirements against the need: does what it was specified to do actually help. Software can pass one and fail the other.
What is the difference between UAT and system integration testing?
System integration testing checks that separately built components work correctly together, and it is a technical check run by the team. UAT checks that the assembled result meets the business need, and it is run by users. SIT normally precedes UAT.
Bug reports that arrive ready to triage.
Collect replay, console, network and browser context with the Free plan.