Skip to content

Usability Testing

Usability testing observes real people trying to complete real tasks with your product, and studies where they succeed and where they struggle. It measures effectiveness (did they do it), efficiency (how much effort) and satisfaction (how did it feel).

task ──► user attempts ──► observe ──► measure ──► iterate
│ │ │ │
think-aloud notes, success rate, fix the
(what they say) recordings time, SUS top issue

It is qualitative first: five participants usually surface most major problems, long before a statistically large sample is worth the cost.

Use it for

  • Before writing more code for a feature people may not understand
  • When analytics show drop-off but not why
  • Validating a design with the people who will actually use it
  • Comparing two design options with the same tasks

Avoid or reduce it when

  • You ask users what they want instead of watching what they do
  • You recruit only teammates or power users and call them representative
  • You test a prototype so rough that the feedback is about the mockup, not the idea
  • You run it once and never close the loop by fixing the top issues
Tool Ecosystem Notes
Maze Web Remote, unmoderated task studies at scale
Lookback Multi Moderated sessions with recording and notes
UserTesting Web / mobile Large participant panel on demand
Hotjar Web Heatmaps, session replays, on-site survey
System Usability Scale Method Ten-item questionnaire producing a 0-100 score
Nielsen heuristics Method Ten heuristics for expert review
Optimal Workshop Web Card sorting and tree testing for IA
Playwright JS/TS Capture flows and screenshots for annotation
Terminal window
npm install -D @playwright/test
npx playwright install
// record a task flow for later review with participants
await page.screenshot({ path: 'flow-step-1.png', fullPage: true });
import { test } from '@playwright/test';
test('signup task flow for usability review', async ({ page }) => {
await page.goto('/signup');
await page.screenshot({ path: 'step-1-email.png' });
await page.getByLabel('Email').fill('user@example.com');
await page.getByRole('button', { name: 'Continue' }).click();
await page.screenshot({ path: 'step-2-confirm.png' });
});
  • Watch behaviour, not opinions. What users do is more reliable than what they say they would do.
  • Give real tasks, not leading questions. “Book a return flight to Da Nang”, not “Do you like the booking screen?”
  • Stay quiet during the task. Defer help; a moderator who rescues participants hides the very problem you are looking for.
  • Recruit representative users. Five real target users beat fifty colleagues.
  • Report observed problems and evidence. Tie each finding to a clip or quote, then prioritise by severity.
  • Close the loop. A study whose top issues never get fixed is theatre.

Self-assessment quiz

Pick one answer per question, then press Check answers.

  1. How many participants are usually enough to surface most major usability problems?
  2. What does the think-aloud protocol ask participants to do?
  3. What does the System Usability Scale produce?
  4. Where should the moderator sit during an unmoderated remote study?
  5. What makes a usability test task useful?