Short answer
User acceptance testing is the stage where the people who will actually use a system verify it against the agreed requirements before launch, working through real scenarios on a staging environment. Developer testing asks whether the code behaves as written; UAT asks whether the software does the job the business needs done.
Also called: UAT, Acceptance testing
The stage works when it is structured: scenarios written from the agreed requirements, run by the staff who will do the work, on data shaped like the real thing, with every result logged as pass or fail and given a severity. Unstructured clicking finds cosmetic problems and misses the case that only appears at month-end close, or when a record has an unusual character in the name.
The boundary matters as much as the testing. UAT verifies the system against what was agreed; it is not the moment to introduce requirements nobody specified. Separating defects, which the development team fixes, from change requests, which are priced and scheduled, is what stops acceptance testing becoming a second build phase with no budget behind it.
Common questions
Who should run UAT?
The people who will use the system daily, rather than the project sponsor or the development team. A manager tends to test the workflow as designed; the person doing the job tests the exceptions, which is where software fails. Give them written scenarios, a staging environment, and one place to log what they find.
Related terms
Staging Environment
A staging environment is a private copy of a live system, running the same code and configuration, used to test changes before they reach customers.
Scope Creep
Scope creep is the gradual expansion of a project’s requirements after the scope is agreed, usually through small additions that each seem too minor to renegotiate.
Software Requirements Specification (SRS)
A software requirements specification is the written document defining what a system must do: functional requirements as testable statements, non-functional requirements such as performance and access control, plus constraints and assumptions.
Project Handover
Project handover is the transfer of a finished system and the knowledge needed to run it: production access, hosting and domain accounts, environment variables, deployment steps, and documentation of how the parts fit together.
Reading definitions because you are scoping a project? Skip ahead and just ask.