What is UAT, and how is it different from system testing?
System testing asks whether the ERP is configured correctly. UAT asks whether your people can do their jobs in it.
| System testing | User acceptance testing | |
|---|---|---|
| Run by | Implementation consultants | Key users and selected end users |
| Data | Sample or partly migrated data | The second trial load of real data |
| Cases | Each setting and function on its own | Whole processes, from order to cash and purchase to payment |
Who should run UAT, and how long does it take?
The key user in each department leads testing for their area, with two or three end users who do the work every day. The project owner signs off. Consultants prepare the test system and fix defects, but do not test on the users' behalf.
For a mid-sized company, plan two to three weeks in two cycles:
- Cycle 1. Run every script once and log each defect.
- Fixes. The implementation team fixes defects, most urgent first.
- Cycle 2. Re-test the fixes, then re-run the critical scripts in full to check nothing else broke.
Before cycle 1 starts, check that you have:
What should you test in each process? The UAT checklist
Test whole processes, including the awkward cases you meet every month.
Order to cash
Procure to pay
Inventory
Finance and month-end
Tax and e-invoicing
Access and reports
What does a UAT test script look like? A worked example
Here is a script from an electrical goods distributor in Riyadh, testing a customer with a SAR 100,000 credit limit and SAR 92,000 already owed.
| Step | Action | Expected result | Result |
|---|---|---|---|
| 1 | Enter an order for 200 cartons of cable at SAR 50: SAR 10,000 plus 15% VAT, SAR 11,500 | Order blocked: the customer would owe SAR 103,500, over the limit | Pass |
| 2 | Finance manager approves the order | Order released; approver and time recorded | Pass |
| 3 | Warehouse delivers 150 cartons | Delivery note for 150; 50 left on backorder | Pass |
| 4 | Invoice the delivery | Standard tax invoice for SAR 8,625 (7,500 plus 1,125 VAT), cleared in ZATCA's test environment, QR code printed | Fail: customer name printed in English only |
| 5 | Customer returns 10 cartons | Credit note for SAR 575 linked to the original invoice | Pass |
| 6 | Record the customer's payment of SAR 8,050 | Invoice and credit note settled; nothing left owing on this invoice | Pass |
Step 4 was logged as a high-severity defect, because Saudi tax invoices must be issued in Arabic, and English may appear alongside it. The invoice layout was corrected and the whole script re-run in cycle 2, when every step passed.
One script like this tests six things at once. Twenty to forty scripts usually cover a mid-sized company.
When can you sign off UAT?
When no critical or high defects are open, and every medium or low defect left has an owner, a workaround and a date. Agree the severity levels before testing starts, so nobody argues about them at the end.
| Severity | Meaning | Example | Before go-live? |
|---|---|---|---|
| Critical | A core process cannot be done at all | Invoices cannot be cleared by ZATCA | Must be fixed |
| High | A process works but gives a wrong or non-compliant result | Wrong VAT rate on one item group | Must be fixed |
| Medium | Works, with a manual workaround | A report needs one column added by hand | Fix date agreed |
| Low | Cosmetic | A label is misspelled on screen | Can wait |
The sign-off sheet should confirm:
Where does UAT usually go wrong?
In the projects HYP runs, the most common problem is testers who are never freed from their day jobs. They run the easy scripts in the gaps between real work and skip the awkward cases, which then appear in the first week after go-live.
The second is testing with clean, made-up data. A test system loaded with the real trial load finds duplicate customers, wrong units and missing VAT numbers that sample data hides. Both problems are on our list of the 7 ERP implementation mistakes we see most often.
Our ERP Implementation & Migration page shows how HYP prepares scripts with your key users and runs both test cycles.