usability-heuristic-review — heuristic evaluation (CT-UT)
Reference: fixture/expense-demo-review.md (3 real violations found and confirmed against
examples/expense-demo/app/public/, no fabrication). This skill covers the ISTQB CT-UT
(usability testing) syllabus — the one test type QAIA's other skills leave entirely uncovered.
What this is not: not a quantitative user survey (SUS score, task-completion-rate study with
real users) and not A/B testing or eye-tracking — those need real users QAIA cannot recruit.
This skill is the formative, expert-review half of CT-UT (heuristic evaluation + cognitive
walkthrough), the half a single reviewer session-bound to a self-hosted app can actually do
honestly.
Steps
Screen inventory. For each key screen the test book covers (and any the user names),
navigate and capture a snapshot/screenshot — same navigation discipline as
visual-check/a11y-audit.
Heuristic evaluation. For each screen, check it against Nielsen's 10 heuristics
(nngroup.com/articles/ten-usability-heuristics, verified against the source, not recalled):
- Visibility of system status — is there feedback for every action, especially async ones
(loading/pending state, not just a final result)?
- Match between system and the real world — plain language, no internal jargon/error codes
shown raw to the user.
- User control and freedom — an obvious way out of an unwanted state (cancel, undo, back)
without a multi-step workaround.
- Consistency and standards — the same word/color/control means the same thing everywhere in
the app.
- Error prevention — is a mistake caught before submission (format hints, confirmation on a
destructive action) rather than only after?
- Recognition rather than recall — options/data visible when needed, not memorized from an
earlier screen.
- Flexibility and efficiency of use — reasonable defaults and no forced re-entry of
already-known data.
- Aesthetic and minimalist design — no irrelevant information competing for attention on the
task at hand.
- Help users recognize, diagnose, and recover from errors — error messages state what went
wrong and what to do next, in plain language.
- Help and documentation — is task-relevant help discoverable at the point of need (not
just a generic external link, if present at all)?
For each violation, cite the concrete evidence (a source line, a missing element, a
reproduced click sequence) — never "feels off," always a pointed observation, same discipline
as
a11y-audit's violation reporting.
Cognitive walkthrough (one key task). Pick the single most important user task the test
book covers (the @smoke journey scenario, if one exists). Walk it step by step as a
first-time user would, and at each step ask: will the user know what to do here? Will they
notice the correct control? Will they understand the feedback after acting? Record every step
where the honest answer is "not obviously" — this is a distinct technique from the per-screen
heuristic pass above (it follows one path end-to-end rather than surveying each screen
independently) and often surfaces gaps the heuristic pass alone misses.
Severity and report. Rate each finding on this scale — all four levels are defined,
because a backlog is arbitrated on the two middle ones and "Moderate vs Minor" decided by
feel is not arbitrable:
- Critical — the user cannot complete the task at all: a dead end, a destructive action
with no confirmation or undo, data lost without warning.
- Serious — the task is completable but only with outside help, a retry, or a guess: an
error that does not say what to fix, a required field revealed only on submit, a control
whose effect is unpredictable.
- Moderate — the task succeeds unaided but costs avoidable effort or doubt: unnecessary
steps, an inconsistent label between two screens, feedback that arrives late.
- Minor — the user notices nothing at the time; it degrades polish or accumulates across
a product: inconsistent spacing, a tone that departs from the rest of the interface, a
redundant confirmation.
The dividing line between Critical and Serious is unaided completion; between Moderate and
Minor it is whether the user is slowed down at all. Where a finding sits between two
levels, choose the lower one and say why — an inflated severity list is discounted wholesale
by the team receiving it. tag @QAIA-UT-<NNN>; report honestly, including a clean screen
with zero findings as such rather than padding the report to look thorough.
Guardrails
- Self-hosted targets only (same posture as
perf-check/security-surface): review your
own app, never a third-party production site.
- Expert review, not a user study — never present a heuristic-evaluation finding as if it
came from real user testing; the report must say plainly which of the two (evaluation vs.
walkthrough) produced each finding.
- A finding without a concrete, reproducible trigger (a specific element, a specific step) is
not reported — no vague "feels unpolished" entries.
- Additive, not a replacement — usability findings never gate a release on their own; they are
advisory input for
prioritize/human review, same posture as every other producer skill (rule
3: no producer scores itself).
1---2name: usability-heuristic-review3description: Review a running app's screens against Nielsen's 10 usability heuristics (CT-UT) via a structured heuristic evaluation and a cognitive walkthrough of one key task, reporting violations by severity. Use for usability coverage. Self-hosted targets only.4---56# usability-heuristic-review — heuristic evaluation (CT-UT)78Reference: `fixture/expense-demo-review.md` (3 real violations found and confirmed against9`examples/expense-demo/app/public/`, no fabrication). This skill covers the ISTQB CT-UT10(usability testing) syllabus — the one test type QAIA's other skills leave entirely uncovered.1112**What this is not**: not a quantitative user survey (SUS score, task-completion-rate study with13real users) and not A/B testing or eye-tracking — those need real users QAIA cannot recruit.14This skill is the **formative, expert-review** half of CT-UT (heuristic evaluation + cognitive15walkthrough), the half a single reviewer session-bound to a self-hosted app can actually do16honestly.1718## Steps19201. **Screen inventory.** For each key screen the test book covers (and any the user names),21 navigate and capture a snapshot/screenshot — same navigation discipline as22 `visual-check`/`a11y-audit`.232. **Heuristic evaluation.** For each screen, check it against Nielsen's 10 heuristics24 (nngroup.com/articles/ten-usability-heuristics, verified against the source, not recalled):25 1. Visibility of system status — is there feedback for every action, especially async ones26 (loading/pending state, not just a final result)?27 2. Match between system and the real world — plain language, no internal jargon/error codes28 shown raw to the user.29 3. User control and freedom — an obvious way out of an unwanted state (cancel, undo, back)30 without a multi-step workaround.31 4. Consistency and standards — the same word/color/control means the same thing everywhere in32 the app.33 5. Error prevention — is a mistake caught before submission (format hints, confirmation on a34 destructive action) rather than only after?35 6. Recognition rather than recall — options/data visible when needed, not memorized from an36 earlier screen.37 7. Flexibility and efficiency of use — reasonable defaults and no forced re-entry of38 already-known data.39 8. Aesthetic and minimalist design — no irrelevant information competing for attention on the40 task at hand.41 9. Help users recognize, diagnose, and recover from errors — error messages state what went42 wrong and what to do next, in plain language.43 10. Help and documentation — is task-relevant help discoverable at the point of need (not44 just a generic external link, if present at all)?45 For each violation, cite the concrete evidence (a source line, a missing element, a46 reproduced click sequence) — never "feels off," always a pointed observation, same discipline47 as `a11y-audit`'s violation reporting.483. **Cognitive walkthrough (one key task).** Pick the single most important user task the test49 book covers (the `@smoke` journey scenario, if one exists). Walk it step by step as a50 first-time user would, and at each step ask: will the user know what to do here? Will they51 notice the correct control? Will they understand the feedback after acting? Record every step52 where the honest answer is "not obviously" — this is a distinct technique from the per-screen53 heuristic pass above (it follows one path end-to-end rather than surveying each screen54 independently) and often surfaces gaps the heuristic pass alone misses.554. **Severity and report.** Rate each finding on this scale — all four levels are defined,56 because a backlog is arbitrated on the two middle ones and "Moderate vs Minor" decided by57 feel is not arbitrable:58 - **Critical** — the user cannot complete the task at all: a dead end, a destructive action59 with no confirmation or undo, data lost without warning.60 - **Serious** — the task is completable but only with outside help, a retry, or a guess: an61 error that does not say what to fix, a required field revealed only on submit, a control62 whose effect is unpredictable.63 - **Moderate** — the task succeeds unaided but costs avoidable effort or doubt: unnecessary64 steps, an inconsistent label between two screens, feedback that arrives late.65 - **Minor** — the user notices nothing at the time; it degrades polish or accumulates across66 a product: inconsistent spacing, a tone that departs from the rest of the interface, a67 redundant confirmation.6869 The dividing line between Critical and Serious is *unaided completion*; between Moderate and70 Minor it is *whether the user is slowed down at all*. Where a finding sits between two71 levels, choose the lower one and say why — an inflated severity list is discounted wholesale72 by the team receiving it. tag `@QAIA-UT-<NNN>`; report honestly, including a clean screen73 with **zero findings** as such rather than padding the report to look thorough.7475## Guardrails7677- **Self-hosted targets only** (same posture as `perf-check`/`security-surface`): review your78 own app, never a third-party production site.79- **Expert review, not a user study** — never present a heuristic-evaluation finding as if it80 came from real user testing; the report must say plainly which of the two (evaluation vs.81 walkthrough) produced each finding.82- A finding without a concrete, reproducible trigger (a specific element, a specific step) is83 not reported — no vague "feels unpolished" entries.84- Additive, not a replacement — usability findings never gate a release on their own; they are85 advisory input for `prioritize`/human review, same posture as every other producer skill (rule86 3: no producer scores itself).