Heuristic evaluation

휴리스틱 평가

A method where experts inspect a screen against a validated checklist of usability principles — most often Nielsen's 10 heuristics — without real users.

Also known as: Expert reviewNielsen's 10 heuristics전문가 평가
···
html
<div class="stage">
  <div class="num" id="num">1</div>
  <div class="txt" id="txt"></div>
  <div class="dots" id="dots"></div>
</div>
css
.stage{width:94%;height:88%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center}
.num{font:800 28px/1 monospace;color:var(--accent)}
.txt{font:700 13px/1.3 sans-serif;color:var(--fg);min-height:2.6em;display:flex;align-items:center}
.dots{display:flex;gap:5px}
.dots span{width:6px;height:6px;border-radius:50%;background:var(--line)}
.dots span.on{background:var(--accent)}
js
const heuristics = [
  'Visibility of system status',
  'Match with the real world',
  'User control and freedom',
  'Consistency and standards',
  'Error prevention',
  'Recognition rather than recall',
  'Flexibility and efficiency',
  'Aesthetic, minimalist design',
  'Help recover from errors',
  'Help and documentation',
];
const num = document.getElementById('num');
const txt = document.getElementById('txt');
const dots = document.getElementById('dots');
heuristics.forEach(() => {
  const d = document.createElement('span');
  dots.appendChild(d);
});
const dotEls = dots.children;
let i = 0;
function show() {
  num.textContent = String(i + 1).padStart(2, '0');
  txt.textContent = heuristics[i];
  for (let k = 0; k < dotEls.length; k++) dotEls[k].classList.toggle('on', k === i);
  i = (i + 1) % heuristics.length;
}
show();
setInterval(show, 1500);

Heuristic evaluation catches problems fast without recruiting research participants. A small panel of evaluators (typically two to five UX experts) independently walks the screen against Jakob Nielsen's 10 heuristics — visibility of system status, match between system and the real world, user control and freedom, consistency and standards, error prevention, recognition rather than recall, flexibility and efficiency of use, aesthetic and minimalist design, help users recognize/diagnose/recover from errors, and help and documentation — then their findings get pooled.

It's often paired up with usability testing but no real user ever appears in it. Because it leans on expert judgment, it can't confirm whether an actual user would struggle — what it does well is cheaply and quickly filter out the obvious problems (low contrast, inconsistent labels) so a usability test isn't wasted rediscovering them.

Nielsen's original research found a single evaluator catches only about a third of the problems present. That's why evaluators usually assess independently first, before comparing notes.

When to use

Run it before recruiting participants, to filter out the obvious problems early. It doesn't replace usability testing — you still need to confirm how real users actually behave.