All articles

Custom Software12 min read

UAT Test Scripts: Templates, Examples and Sign-Off

A UAT test script is a step-by-step test a business user follows to prove one real scenario works in the finished software. This guide covers who writes the UAT plan, how to pick business-critical scenarios, a script template, worked examples, entry and exit criteria, defect handling and sign-off.

Written byUsama AsifPublished

A UAT test script is a step-by-step test that a business user follows to prove one real business scenario works in the finished software. It names the role, starting data, steps, expected result and evidence. Scripts are written from the approved scope, run by the people who will use the system, and end in a clear accept or reject decision.

This guide is for owners, product managers and operations leads about to accept a custom build: a web application, customer portal, mobile back-office app or system integration. It works for any custom software built against an approved scope. For ERP-specific scenarios such as procure-to-pay, order-to-cash and period-end close, use our ERP UAT testing plan instead; this guide does not repeat them. If you want an independent QA service to plan and run testing alongside your own acceptance work, see our software quality assurance and testing service.

Key takeaways

  • Write scripts from the approved scope and its acceptance criteria, not from screens. Every criterion should trace to at least one script.
  • The business owns the UAT plan and the scripts. The delivery team supports with environment, data and fixes, and does not mark scripts as passed.
  • Choose business-critical scenarios first: the ones where failure stops revenue, breaks a control or leaves staff unable to work.
  • Write happy-path and failure-path scripts. Failure paths find the gaps that hurt most.
  • Agree entry and exit criteria before UAT starts, so "done" is not decided under deadline pressure.
  • Keep defects (software differs from the approved scope) separate from change requests (the scope was wrong or has changed).

What is a UAT test script?

A UAT test script is a written set of steps that a business user follows to check one real scenario in the finished software, such as approving a purchase request or issuing a refund. It states who performs it, the starting data, each step, the expected result and where to record evidence, so a pass or fail is clear.

The ISTQB glossary describes acceptance testing as a test level focused on deciding whether to accept the system. That is why a script ends in a pass or fail the business can stand behind, rather than a list of observations. Scripts are the evidence behind the final sign-off.

What is a UAT test plan and who creates it?

A UAT test plan is the short document that says what will be accepted, by whom, in which environment, with which data, in what order, by which date and what counts as done. The business owner or product owner is accountable for it. The delivery team supplies the environment, test data and the approved scope it is built from.

RoleWhat they typically do in UAT
Business owner or sponsorOwns the plan, names the signatories, gives final acceptance
Process owner or product ownerChooses business-critical scenarios, reviews scripts, signs for their area
Testers (end users)Run the scripts, record results and evidence
Business analyst or QA leadDrafts scripts from the acceptance criteria and keeps the traceability table
Delivery team or vendorPrepares the environment and data, explains behaviour, fixes defects, does not mark scripts as passed

A workable plan covers scope, the script list, testers and their availability, environment and data, entry and exit criteria, the defect process, a schedule with at least two cycles, and the sign-off list. Two pages is usually enough.

How is UAT different from QA, system testing and regression testing?

UAT asks whether the business can run its work on the software, and business users answer it. QA and system testing ask whether the software works as built, and the delivery or QA team answers that. Regression testing checks that new changes did not break what already worked. The three overlap, but none replaces the others.

Test typeQuestion it answersWho does itBased on
Unit and integration testingDo the parts work and connect?DevelopersTechnical design
System testing and QADoes the whole product meet its specification?QA testersSpecification, requirements
Regression testingDid a change break something that worked?QA, often automatedPrevious passed tests
UATCan we run our business on this?End users and process ownersApproved scope, real scenarios

Do not use UAT to find every bug. If testers spend UAT fighting basic errors, the product was not ready, and the entry criteria below exist to stop that. For how outside QA fits around your own acceptance work, see our QA outsourcing guide.

How do you write UAT scripts from an approved scope?

Start from the approved scope and its acceptance criteria, not from the screens. List each criterion, decide which business scenario proves it, then write one script per scenario with a happy path and at least one failure case. Keep a traceability table so every criterion links to a script and every script links back to a criterion.

Acceptance criterion (example)Scenario that proves itScript IDPath
A customer can download an invoice for any past orderCustomer finds an old order and downloads the invoicePORTAL-02Happy
A customer cannot see another customer's ordersCustomer edits the order number in the address barPORTAL-03Failure
A refund over the agent's limit needs supervisor approvalAgent refunds an amount above their limitPORTAL-04Failure
Stock levels update after an order is shippedWarehouse ships an order and checks the countINT-02Happy

Good acceptance criteria are observable (someone can see the result), single-condition, written in business words and tied to data. "The system is fast" cannot be scripted; "the order list opens in a few seconds with the normal data volume" can, once the team agrees the number. If your scope is vague, our software requirements brief template shows how to word requirements so they can be tested.

The table shows gaps (a criterion with no script is untested) and waste (a script with no criterion tests something nobody asked for, or points to a missing requirement).

What are business-critical scenarios for user acceptance testing?

Business-critical scenarios are situations where a failure would stop revenue, break a legal or financial control, harm customers or leave staff unable to do their core job. They are tested first, by experienced users, with realistic data, and a failure blocks launch. Less critical scenarios can be accepted with a workaround.

Score every scenario with five questions. Two or more "yes" answers usually make it business-critical.

  1. Impact: if it fails, does money, stock or customer data go wrong?
  2. Frequency: is it done every day, or by many users?
  3. Control: does it enforce an approval, permission, limit or audit trail?
  4. No workaround: can the work continue some other way if it fails?
  5. Reputation or compliance: would customers, regulators or partners notice?

Typical examples in custom software are permissions, the core transaction (order, booking, claim, job), payments and refunds, data exchanged with another system, the report management relies on, and what happens when something goes wrong, such as a rejected payment or a lost connection.

What does a UAT script template look like?

A UAT script template is one table or form per scenario with fixed fields: ID, scenario, role, preconditions, numbered steps, expected result, actual result, evidence, status and defect reference. Fixed fields make scripts easy to review before testing and easy to audit after it, because any reader can see what was tested and what happened.

FieldWhat to write
Script IDShort code by area, for example PORTAL-04
Requirement or criterionThe approved-scope item this script proves
ScenarioOne sentence in business words
PriorityBusiness-critical, important or minor
RoleThe user type performing it, not a named person
PreconditionsAccount, data and environment state needed before step 1
StepsNumbered, one action each, using real field names
Expected resultWhat the tester should see, including figures where relevant
Actual resultFilled in during the test
EvidenceScreenshot, document number or exported file
StatusPass, fail or blocked
Defect referenceTicket number if it failed, plus who ran it and when

Keep each script to one scenario and roughly ten steps or fewer. A script that tries to cover a whole process becomes hard to repeat and hard to diagnose when it fails.

What do UAT test script examples look like for different systems?

Example scripts differ by system type but keep the same fields. A customer portal script checks permissions and money, an integration script checks data moving between systems, and a mobile back-office script checks field conditions such as poor signal. All three below are illustrative and use invented data.

Example 1: customer portal (refund request)

PORTAL-04 | Role: customer service agent | Priority: business-critical | Preconditions: test customer with a delivered order worth 120 in the test data; agent refund limit set to 100.

StepActionExpected result
1Search for the test customer and open the delivered orderOrder shows status Delivered and the paid amount
2Choose Refund and enter 80Refund is accepted and a confirmation reference appears
3Open the order historyRefund of 80 is listed with agent name and time
4Start a second refund of 120 on the same orderSystem blocks it or routes it to a supervisor for approval; no money is released

Example 2: system integration (web order to warehouse system)

INT-02 | Role: warehouse supervisor | Priority: business-critical | Preconditions: test product with a stock of 10 in both systems; test connection to the warehouse system active.

StepActionExpected result
1Place a test order for 3 units on the web applicationOrder is created with a unique order number
2Wait for the sync window and open the warehouse systemThe same order appears once, with the right items, address and quantity
3Mark the order shipped in the warehouse systemWeb order status changes to Shipped
4Check stock in both systemsBoth show 7
5Resend the same order message from the test toolNo second order is created

Example 3: mobile back-office app (job completion with poor signal)

MOB-06 | Role: field technician | Priority: business-critical | Preconditions: technician logged in on a test phone with one job assigned; job data downloaded.

StepActionExpected result
1Switch the phone to airplane modeApp shows an offline indicator and keeps the job open
2Add notes, two photos and a customer signature, then tap CompleteJob shows Completed, pending upload; nothing is lost
3Switch the connection back onUpload finishes without a manual retry
4Open the job in the office web viewNotes, photos and signature are all present, with the correct time

How many UAT test scripts do you need?

There is no standard number. Plan one script per business scenario, add failure-path scripts for the critical ones, and size the set by the number of approved requirements and the risk of each. For a typical custom application that is commonly tens of scripts rather than hundreds, and fewer for a small tool with few roles.

To size it, group the acceptance criteria into scenarios a user would run in one sitting, add failure-path scripts for the critical ones, time five sample scripts with real testers, then multiply and add time for retesting. Compare the total with the hours testers can actually give per day.

If the total does not fit the testers' real availability, cut low-risk scripts, not business-critical ones. Plan at least two cycles: one to find defects and one to confirm fixes.

What are UAT entry and exit criteria?

Entry criteria are the conditions that must be true before UAT starts. Exit criteria are the conditions that must be true before UAT ends and sign-off can be given. Agreeing both in writing before testing starts prevents two common problems: starting UAT on unfinished software and arguing at the end about what "done" means.

Entry criteriaExit criteria
SoftwareBuild deployed to a stable test environment; system testing complete for in-scope featuresNo open critical defects; high defects fixed or each workaround accepted in writing
ScriptsAll scripts written, reviewed by the process owner and traced to the approved scopeAll business-critical scripts executed with evidence and passed
DataRealistic test data loaded; test accounts exist for each roleResults reproducible on the final build, not an earlier one
PeopleTesters named, trained on the test environment and given time in their calendarEach signatory has reviewed the open-defect list
ProcessDefect log and triage routine agreedRemaining medium and low defects listed with owners and planned fix dates

What is the difference between a UAT defect and a change request?

A defect is when the software behaves differently from the approved scope. A change request is when it behaves as agreed, but the business now wants something different or the scope missed a need. Defects are fixed within the agreed work; change requests are assessed for effect on scope and schedule and approved before work starts.

SeverityMeaningTypical launch rule
CriticalA business-critical scenario cannot be completed, or data or money is wrong, with no workaroundFix and retest before launch
HighThe scenario works only through a difficult or risky workaroundFix before launch, or the process owner accepts the workaround in writing
MediumInconvenient, with a reasonable workaroundCan launch with a dated fix plan
LowCosmetic or minorSchedule after launch

Three triage questions settle most arguments. Does the approved scope say this should work differently (defect)? Is it working as agreed but the agreement is wrong (change request)? Did the tester expect something nobody ever promised (training or documentation)? Log all three separately. Mixing change requests into the defect list is a common reason UAT never seems to finish.

When does automation help with UAT?

Automation helps UAT by rerunning stable, repetitive checks, such as login, core calculations and the business-critical scenarios, after every fix. That frees testers to spend their time on judgement-heavy scripts. It does not replace business users, because UAT is a human decision about fit. Automate a script only after it has passed manually and the screens have stopped changing.

  • Good candidates: login and roles, calculations and totals, integration message checks, validation rules, and business-critical scenarios you will rerun at every release.
  • Poor candidates: first-time usability checks, screens still being redesigned, and anything a user must judge by feel.

Treat automated runs as support for the sign-off, not a replacement. Business users should still run the critical scenarios on the final build themselves.

Who signs off UAT, and what does sign-off include?

UAT sign-off is a written decision, given by the business owner and each process owner, that the software meets the approved scope and can go live, with any accepted exceptions listed. The delivery team does not sign for the business. The decision should rest on the exit criteria and on the evidence in the scripts.

A sign-off record should include:

  • The build or version number that was tested
  • Scripts with status and evidence links
  • Open defects by severity, with accepted workarounds
  • Change requests raised and what was decided
  • Names, roles and dates for each signatory

After launch, accepted low defects and workarounds become the first items in your support backlog; see what software maintenance covers for how to keep that work organised.

Illustrative example

This example is hypothetical; the company and figures are invented. A regional equipment-rental firm has a custom booking portal and a mobile app for delivery drivers built against an approved scope with 46 acceptance criteria. The operations manager owns the UAT plan. A business analyst groups the criteria into 31 scripts and a traceability table, and the process owners mark 9 of them business-critical: booking, deposit payment, damage-fee refund, stock availability, driver proof of delivery, and four permission checks.

In cycle one, 27 scripts pass and 4 fail. One failure is critical: a driver who completes a delivery with no signal loses the signature. It is fixed and retested in cycle two. During testing the finance lead also asks for a new report, which is logged as a change request and scheduled after launch. At sign-off the operations manager and the finance lead sign, with two low defects listed and dated.

When this is the wrong approach

Formal scripted UAT is the wrong approach for a very small internal tool used by a handful of people, or for a prototype whose requirements are still changing every few days. In both cases a short checklist of the key scenarios, run live with the users, costs less and finds the same problems.

It is also the wrong approach when UAT is being used to replace earlier testing or to decide what the product should be. Fix the earlier stage first.

Glossary: UAT, user acceptance testing, the final check by business users that the software supports their real work; acceptance criteria, the conditions a feature must meet to be accepted; test script, a step-by-step test for one scenario; traceability, the link from each requirement to the scripts that prove it; entry criteria, conditions to start testing; exit criteria, conditions to finish and sign off; regression testing, rechecking that existing features still work after a change; change request, a formal request to alter the approved scope.

How Timeline Digital approaches acceptance testing

Timeline Digital is a custom software development company founded in 2013 and headquartered in Islamabad, Pakistan, that delivers custom software as managed projects. We start by learning your requirements, then build a free pilot of the 2 to 3 key modules that your team tests with real scenarios before you decide on the final agreement. There is no fixed timeframe: the schedule for a custom software project is set from your requirements in the Plan step. The free pilot of 2 to 3 key modules is ready in about 2 days, and with 1,200+ developers we have the capacity to deliver a focused system in as little as 2 weeks. The full project starts after you approve the pilot, and the scope, milestones and terms are agreed after it. Timeline Digital does not publish prices for custom software, because every project is custom. See custom software development to start.

Frequently asked questions

What is a UAT test script?

A UAT test script is a written set of steps that a business user follows to check one real scenario in the finished software. It lists the role, starting data, numbered steps, expected result and a place for evidence and status, so the outcome is a clear pass or fail that supports the final sign-off decision.

Who creates the UAT test plan?

The business owner or product owner is accountable for the UAT plan, usually with a business analyst or QA lead drafting it. The delivery team contributes the approved scope, the test environment and the test data. Process owners review the scenarios, and the people who will use the software run them and record results.

What are business-critical scenarios in user acceptance testing?

They are scenarios where a failure would stop revenue, break a financial or legal control, harm customers or leave staff unable to do their core job. Examples are the main transaction, payments and refunds, permissions, key integrations and the report management relies on. They are tested first, and a failure blocks launch.

How many UAT test scripts do I need?

There is no standard number. Write one script per business scenario, add failure-path scripts for the business-critical ones, and trace each to an approved requirement. For a typical custom application that is commonly tens of scripts. Check that testers have enough hours to run them twice, once for defects and once for retesting fixes.

What is the difference between UAT and QA testing?

QA and system testing check that the software meets its specification and are run by developers or testers. UAT is run by business users, using real scenarios, to decide whether the software supports their work and can be accepted. QA finds defects against the specification; UAT checks that the specification itself fits the business.

What are entry and exit criteria for UAT?

Entry criteria are conditions to start, such as a stable build, finished system testing, reviewed scripts, realistic data and trained testers. Exit criteria are conditions to finish, such as all critical scripts passed with evidence, no open critical defects, accepted workarounds in writing and a reviewed list of remaining issues. Agree both before testing begins.

Can UAT test scripts be automated?

Some can. Stable, repetitive checks such as login, calculations and business-critical scenarios are good candidates, and automating them helps regression runs between cycles and after launch. Scripts that depend on judgement, new screens or first-time usability should stay manual. Business users should still run the critical scenarios on the final build themselves.

Who signs off UAT?

The business owner and the owner of each tested process sign, not the delivery team. The sign-off record lists the tested version, script results with evidence, open defects and any workarounds the business accepted, plus names and dates. It is a written decision that the software meets the approved scope and can go live.

Topics in this article

  • UAT
  • User Acceptance Testing
  • UAT Test Scripts
  • Test Plan
  • Software Testing
  • Custom Software

Start a conversation

Tell us how your business works.

Describe what is slowing your team down. We will help you work out what to build, and how a free pilot lets you judge our work before the full project.

Prefer WhatsApp? Start a chat

What happens next

  1. You send a short brief

    The problem, the people involved and any target date. A senior engineer replies within 4 business hours.

  2. We understand your workflow

    A first call about how your business works today. An NDA can be signed before you share details.

  3. You test a free pilot

    You choose 2 to 3 key modules and we build them first, so you judge real software before the full project.