A new system can look finished on a demo call and still fall apart on a busy Tuesday morning. The difference is usually not a technical fault. It is that nobody has tested it against the untidy, time-pressured reality of how the business works. This guide to user acceptance testing explains how to avoid that problem before a new platform, workflow or integration becomes part of daily operations.

User acceptance testing, usually shortened to UAT, is the point where the people who will use a system check whether it does the job they actually need it to do. It is not about finding every minor visual issue or proving that the developer has written code correctly. It is about confirming that the system supports real work, handles sensible exceptions and is ready to be relied upon.

For businesses replacing spreadsheets, shared inboxes or disconnected software, this stage is where assumptions become visible. Done properly, it prevents expensive rework after launch and gives the team confidence that change will make work easier rather than create another workaround.

What user acceptance testing is really for

Technical testing asks whether the system functions as designed. User acceptance testing asks whether the design was right for the business.

That distinction matters. A quotation tool may generate a PDF perfectly, for example, but still fail UAT if sales staff cannot amend a quote without starting again, if approval requests go to the wrong person, or if the information needed by accounts is missing. Nothing may be technically broken, yet the process is still not fit for purpose.

UAT should test the agreed business outcomes. If the aim was to reduce order processing time, stop duplicate customer records or give managers a clearer view of work in progress, the test should show whether those things genuinely happen.

It is also the right time to identify the difference between a fault and a change request. A fault is something that does not work as agreed. A change request is a reasonable new idea or a preference that was not in the original scope. Both deserve consideration, but treating them as the same thing causes delays, frustration and unclear budgets.

Who should take part

The best testers are not necessarily the most senior people or the most comfortable with software. They are the people who know where the process gets difficult: the administrator who chases missing information, the operations manager who resolves exceptions, or the accounts colleague who has to make figures reconcile at month end.

Choose a small, representative group. One person who understands the end-to-end process should act as the business owner for UAT, making decisions where feedback conflicts. Then involve users from the roles that create, check, approve and use information downstream.

Avoid asking one person to test everything alone. They will naturally test the route they know best, while a colleague may expose a completely different issue. Equally, too many testers without a clear process can produce a long list of contradictory preferences. A focused group of three to six people is often enough for a small or medium-sized business.

The developer or delivery partner should support the process, explain intended behaviour and fix agreed issues. They should not be the person deciding whether the system works for the business. Acceptance needs to come from the client team that will live with the result.

How to prepare for a useful UAT cycle

Good UAT starts before anyone logs in. Set aside protected time and use a test environment with realistic data. Testing a stock process with three made-up products, or a customer workflow with one simple contact, will not reveal much. Use a safe copy of typical records where possible, with personal or commercially sensitive information removed if needed.

Agree what is in scope. This does not need to be a heavyweight document. A short list of key processes, roles and expected outcomes is enough. It should be clear which integrations are being tested, which reports matter, and which activities will remain outside the new system for now.

It also helps to set a practical definition of acceptance. For example, the business may agree that all critical test scenarios must pass, no high-priority defects can remain open, staff can complete the core process without manual spreadsheets, and agreed training materials are available. That makes the go-live decision less subjective.

Build scenarios around real work

Do not simply click through each screen and say it looks fine. Write scenarios based on a normal working day, including the awkward cases that happen often enough to matter.

For an order process, a scenario might start with an enquiry, move through pricing and approval, create an order, trigger a notification, update stock or scheduling, and finish with invoicing. Test what happens when the customer changes their mind, an item is unavailable, an approval is delayed or information arrives incomplete.

Each scenario should state who performs the task, what information they start with, what they need to do and what outcome they expect. Keep the language plain. A tester should not need technical knowledge to understand what success looks like.

Test the handovers especially carefully. Many operational problems appear where one team assumes another team has received information, where a status is unclear, or where data is entered twice in two different systems. If the new solution connects systems, verify that information arrives in the right place, at the right time and in a usable form.

A practical guide to user acceptance testing

Run UAT in a structured cycle rather than as a vague request to “have a play”. Give testers a clear start and finish date, but leave enough time for fixes to be retested. A week may be sufficient for a focused workflow improvement; a larger platform with several departments may need two or three rounds.

Ask testers to record each issue in one shared place. A useful issue record includes the scenario being tested, the steps taken, what happened, what was expected, a screenshot where helpful, and the level of impact. This saves time compared with scattered emails, messages and verbal comments.

Prioritise issues by business impact, not by who raised them first. A sensible approach is:

  • Critical: work cannot continue, data is wrong, or there is a serious security or compliance risk.
  • High: a key process works only with a difficult manual workaround.
  • Medium: the process works, but causes avoidable delay or confusion.
  • Low: a cosmetic point or minor improvement that can wait.

This is where commercial judgement matters. Holding up a launch for every small preference is rarely sensible. Going live with a known issue that prevents invoicing, creates incorrect records or leaves staff unable to complete a core task is equally unwise. The right decision depends on the risk, the availability of a safe workaround and the cost of delay.

Once an issue is fixed, the original tester should retest it. Do not mark it complete simply because it has been changed. The fix may affect another part of the process, particularly where approvals, calculations or integrations are involved.

Common UAT mistakes that create trouble later

The first is treating UAT as a final sign-off exercise rather than a working session. If people feel they are expected to approve the system regardless, they will keep quiet about concerns and raise them only after launch. Make it clear that useful challenge is part of the job.

The second is testing only happy paths. A process that works when every field is completed correctly and every approval happens immediately tells you very little about daily operations. Exceptions are not edge cases if they occur every week.

The third is failing to give testers enough context. If a new workflow deliberately replaces an old step, users need to understand why. Otherwise, feedback may focus on recreating familiar habits rather than assessing whether the new approach achieves the intended result more efficiently.

Finally, do not confuse training needs with system defects. If a process is sensible but users do not yet know where to find a function, the answer may be a short guide, a better label or a brief training session. If several people make the same mistake, however, the design may need simplifying.

Deciding when to go live

A sensible go-live decision is based on evidence, not optimism. Review completed scenarios, unresolved issues, training readiness, data checks and any changes to existing working practices. The business owner should be able to say that the core process has been tested by the right people and is safe to use.

For larger changes, a phased launch can reduce risk. Start with one team, customer group or process type, then expand once the system has proved itself under real conditions. This is not always necessary, but it is often a better choice where an error could disrupt fulfilment, billing or customer service.

Keep a short list of agreed post-launch improvements. UAT often produces good ideas that are not essential for day one. Capturing them properly means they can be prioritised later without derailing the delivery.

A system should not need perfect conditions to be accepted. It should give your team a dependable way to do the work that matters, including the ordinary complications that spreadsheets and manual processes have forced them to manage for years. If your users can prove that in UAT, go-live becomes a controlled business decision rather than a leap of faith.