UX Testing
UX testing is the tester's own inspection of a product's user experience: you walk each user flow as a customer would and judge, at every step, whether navigation, forms and messages get them to their goal without confusion. The reference is stated expectations, such as the approved design and WCAG 2.2, not your taste.
Example: "order a meal" in a food-delivery app is a six-screen flow. A UX pass checks that each screen says where you are, that "Continue" leads where its label promises, and that a declined card produces a message saying what to do next, not "Something went wrong".
Why it matters
A product can pass every functional test and still lose users: the flow completes and the message is technically correct, yet people abandon the cart because the next step is unclear. Nothing crashed, so these failures are rarely reported.
UX testing turns a vague "it feels awkward" into findings a team can act on, each tied to a step and a violated expectation. ISO/IEC 25010:2023 places these qualities under interaction capability, with sub-characteristics such as operability, user error protection and self-descriptiveness, so a UX finding backed by a stated expectation is a quality defect like any other.
What UX testing checks
Usability testing observes participants; UX testing, as QA teams practise it, is the inspection you do yourself, every sprint, without them. It is not an ISTQB term; the nearest ISTQB technique is checklist-based testing, an experience-based technique: a fixed checklist applied while walking a flow, a narrower and repeatable form of heuristic evaluation.
Your test oracle, the source of the expected result, has four parts: the approved design, the product's own conventions (the same button behaves the same everywhere), recognised heuristics such as Nielsen Norman Group's ten, and WCAG 2.2, whose criteria on forms, navigation and errors are precise enough to cite. A finding backed by one of them is a defect; one backed only by preference is a suggestion.
- User flows: the screens from a goal to its confirmation, with the ways out and back in.
- Navigation: where the user is, where they can go, how they return.
- Forms: labels, hints, defaults, validation timing and the data after an error.
- Messages: errors, confirmations and empty states that say what happened and what to do next.
Forms and error messages
Forms are where many UX defects live, because there the product asks the user to do work. Check each form in three passes. Empty: visible labels, required fields marked in words, format hints such as DD/MM/YYYY before typing, sensible defaults and a fitting mobile keyboard, all preventing errors (heuristic 5, error prevention). Realistic valid data: a full Arabic name, a phone number with spaces, pasted values. Invalid data, as in the lesson on positive and negative testing.
On the invalid pass, watch timing and aftermath. Validation firing while the user still types is a finding; the usual expectation is validation on leaving the field or on submit, with focus moved to the first error. Typed values must survive the error, and the message belongs next to its field. WCAG 3.3.1 requires the field in error to be identified and the error described in text; 3.3.3, a known correction to be suggested; 3.3.7 Redundant Entry, information already given in the same process to be auto-populated or selectable, with exceptions such as re-entry for security. A payment step that makes the user retype the delivery address is a citable defect.
Heuristic 9 asks for messages in plain language, without codes, that state the problem precisely and suggest a solution. For a field that gives four checkable parts, in plain words without blame: name the field, say specifically what is wrong, say how to fix it and, where a format is involved, give a working example. Error 4011: Invalid input has none; "Mobile number: this number has 8 digits. Enter 9 digits starting with 5, for example 512345678" has all four. Confirmations and empty states pass the same test.
Error 4011: Invalid input puts a code and a vague phrase in the first two places and has neither a fix nor an example.Good message
Part 1:Mobile number:
Weak message, as shipped
Part 1:Error 4011:
- 1–4Plain words throughout: no code, no blame
- 1Names the field or the placeWhere the problem is, in the words the label uses. The weak message puts an error code here, which tells the user nothing.WCAG 3.3.1
- 2Says what is wrong, specificallyThe user’s value measured against the rule: 8 digits where 9 are needed.
Invalid inputnames no rule and no value.WCAG 3.3.1 - 3Says how to fix itThe rule as an instruction the user can act on, which WCAG 3.3.3 asks for when a correction is known.missing in the weak message
- 4Gives an exampleA value that would pass, so the user can copy its shape instead of guessing.missing in the weak message
Also check around the message: it sits next to the field, the typed value is still there, focus moved to the field, and the wording is the same on every form.
Text version
Field: mobile number. Rule: 9 digits starting with 5.
Weak: Error 4011: Invalid input.
Good: Mobile number: this number has 8 digits.
Enter 9 digits starting with 5, for example 512345678.
Also check: message sits next to the field yes / no
typed value is still in the field yes / no
focus moved to the field yes / no
same wording on every form yes / noTry it: Validation Test Generator Try it: Mock Error Payload Generator Try it: Fake Name Generator
The UX checklist, applied to a checkout
Turn these questions into a checklist with ids and one yes-or-no condition per item, as in the lesson on checklist-based testing. Run it per flow, not per page. Here it is on the meal-ordering flow, with what it found:
- FLW-04, two orders from a double tap on Confirm: Critical, a functional defect found by a UX check.
- FLW-02 and FRM-04, the cart empties on Back from Payment and the address form clears after an error: Major, the user loses work twice.
- MSG-01, "Something went wrong" on a declined card: Major, the user cannot tell whether to retry, change card or call the bank; proposed text attached.
- NAV-01, NAV-02, FRM-02, no step indicator, "OK" instead of "Continue to delivery time", a text keyboard for the card number: Minor each, grouped in one report.
UX checklist, run per flow Result
FLW-01 Happy path completes without a dead end pass
FLW-02 Back from every step returns with data intact fail: Payment -> Cart empties
FLW-03 Refresh on any step keeps the entered data pass
FLW-04 Double submit cannot create two orders fail: orders 1042 and 1043
NAV-01 Every screen shows where the user is fail: no step indicator
NAV-02 Every button names its action or destination fail: "OK" on Address
NAV-03 Menus and controls in the same place everywhere pass
FRM-01 Labels visible, required fields marked in words pass
FRM-02 Hints before typing, mobile keyboard fits field fail: text keyboard for card
FRM-03 No error shown while the user is still typing pass
FRM-04 After an error, typed values are kept fail: address form cleared
MSG-01 Error names the field, the problem and the fix fail: "Something went wrong"
MSG-02 Confirmation says what happened and what is next pass
MSG-03 Empty states say what to do n/aCommon mistakes
- Reporting taste ("the button should be blue") as a defect. Every finding names the expectation it violates.
- Walking only the happy path, when many UX defects appear only on Back, refresh, timeout or re-entry.
- Testing forms with convenient data: short Latin names, the default country. Use realistic data in the product's languages.
- Accepting "Something went wrong" because the server really failed. If the user cannot tell what to do next, the message is a defect.
- Checking fields one by one without submitting the whole form, so you never see what happens to the data after an error.
- Trusting your own ease: the flow felt simple because you know the product. Report what you observed against the checklist.
The QA perspective
Run the UX pass twice: on the design or prototype, when a confusing step costs only a conversation, and on the built feature as part of the story's testing. Walk the flow on a phone and a desktop, in every language the product ships.
Record the screen, the step, what the user sees, the expectation violated and the severity: a lost order is Critical, lost data Major, a vague message Major or Minor depending on whether the user can recover. Ask the designer and the product owner for the intended path and the approved message wording, and rerun the checklist whenever a flow changes.
Practice exercise
Run a UX pass over a password-reset flow
Below is a web app's password-reset flow as a tester recorded it. Apply the UX checklist: list each finding with its checklist id, what the user sees, the expectation violated and a severity.
Then rewrite the worst message.
Step 1 Login page: a link "Forgot?" under the password field.
Step 2 Reset page: one field with the placeholder "Email", no label; button "Submit".
Typing the first letter shows "Invalid email" in red under the field.
Submitting a valid email shows "Done." and stays on the page.
Step 3 Email "Reset your password" with a link that opens step 4.
Step 4 New password page: fields "Password" and "Repeat"; button "Submit".
Mismatched values: "Error: PWD_MISMATCH" at the top, both fields cleared.
Browser Back from this page returns to step 2 with the email field empty.
Step 5 After success: redirect to the login page with no message.- Map the flow: screen, action and exits to test.
- At each step, ask: where am I, where can I go, how do I get back.
- Check each form: labels, hints, validation timing, data kept after an error.
- Check each message against the four parts of a good message.
- Record each finding with id, evidence, expectation and severity.
Show the model answer
NAV-02: "Forgot?" does not name its action; expect "Forgot your password?". "Submit" on steps 2 and 4; expect "Send reset link" and "Save new password". Minor.
FRM-01: step 2 uses a placeholder instead of a label, so the name disappears while typing (related: WCAG 3.3.2 Labels or Instructions). Major. FRM-03: "Invalid email" fires on the first letter instead of on leaving the field. Minor.
MSG-02: "Done." says neither what happened nor what to do next; expect "If an account exists for this email, we have sent a reset link. Check your inbox and spam folder." Major. Step 5 gives no confirmation; expect "Your password has been changed. Sign in with your new password." Minor.
MSG-01, the worst: Error: PWD_MISMATCH names no field and suggests no fix (WCAG 3.3.1, 3.3.3), and sits at the top of the page. Major. Replacement: "Repeat password: the two passwords do not match. Type the same password in both fields." FRM-04: both fields clear silently; if that is deliberate, the message should say so. Minor. FLW-02: Back loses the email. Minor.
Frequently asked questions
Is UX testing the same as usability testing?
No. Usability testing observes real participants doing tasks and measures their success, time, errors and satisfaction. UX testing is the tester's own inspection of flows, navigation, forms and messages against a checklist and recognised expectations. Do the UX pass first; it removes the obvious obstacles so a usability session can reveal the subtle ones.
How do I report a UX finding without it being dismissed as opinion?
Name the expectation. "The declined-card message does not say what to do next, violating heuristic 9, help users recover from errors; proposed text attached" is a defect with a fix. "The message is unfriendly" is an opinion. Attach a screenshot and, for messages, the replacement wording.
Does UX testing replace accessibility testing?
No. They overlap on forms and navigation, and the WCAG criteria cited here belong to both, but accessibility testing also covers screen readers, keyboard operation, contrast and target size, which are taught in the accessibility module.
Can UX testing be automated?
Parts of it: automated checks can confirm that a flow completes, that a form keeps its values after an error and that each page has a title. Judging whether a message is clear or a step is confusing still needs a person, so keep the checklist as a manual regression step for flows that change.
References
- ISO/IEC 25010:2023 — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality modelThe product quality model: functional suitability, performance efficiency, compatibility, interaction capability, reliability, security, maintainability and flexibility.
- Web Content Accessibility Guidelines (WCAG) 2.2The W3C Recommendation that defines the testable success criteria for accessible web content, organised under four principles and three conformance levels (A, AA, AAA).
- 10 Usability Heuristics for User Interface Design (Jakob Nielsen)Jakob Nielsen's ten broad rules of thumb for interface design — such as visibility of system status and error prevention — originally written for heuristic evaluation.
- ISTQB Certified Tester Foundation Level (CTFL) v4.0The foundation syllabus of software testing: test levels and types, test design techniques, test management and tools.
Practise with Mutqan tools
Derive end-to-end test scenarios from a user story, including alternate and exception flows.
Generate validation test cases for form fields: required, format, length, range, pattern and cross-field rules.
Generate field-level validation error payloads for forms and APIs, in bulk, for UI error-state testing.
Generate random first and last names in English, Arabic and Hindi with gender and format options.
Generate high-level test scenarios covering functional, negative, security, usability and compatibility angles for a feature.
Generate a tailored QA checklist (functional, UI, API, security, performance, accessibility, release) for any feature with Mutqan AI.
Go deeper
Your progress on this topic
Not started
Mark the topic complete when you have studied it and done the exercise.
Sign in to track your progress
Mark topics complete, continue where you left off and unlock specialisation exams.