출처: 웹문서 https://www.nngroup.com/articles/ten-usability-heuristics/
10 Usability Heuristics for User Interface Design by Jakob Nielsen, April 24, 1994, Updated Jan. 30, 2024
요약: 다음은 Jakob Nielsen의 인터액션 디자인에 대한 10가지 일반 원칙이다. 이것이 특정 사용성 지침이 아니라 광범위한 경험 법칙이기 때문에 "휴리스틱"이라고 부른다.
1: 시스템 상태의 가시성(Visibility of System Status)
디자인은 합리적인 시간 내에 적절한 피드백을 통해 항상 사용자에게 현재 상황에 대한 정보를 제공해야 한다.
사용자가 현재 시스템 상태를 알면 자신의 이전 인터액션 결과를 알 수 있고 다음 단계를 결정할 수 있다. 예측 가능한 인터액션은 제품은 물론 브랜드에 대한 신뢰를 형성한다.
Tips.
- 현재 시스템 상태가 무엇인지 사용자에게 명확하게 전달한다. 사용자에게 알리지 않고 사용자에게 어떤 결과를 초래하는 조치를 취해서는 안 된다.
- 가능한 한 빨리(되도록이면 즉시) 사용자에게 피드백을 제공한다.
- 개방적이고 지속적인 커뮤니케이션을 통해 신뢰를 구축한다.
2: 시스템과 현실 세계의 일치(Match Between the System and the Real World)
디자인은 사용자의 언어로 표현되어야 한다. 내부 전문 용어보다는 사용자에게 친숙한 단어, 문구, 개념을 사용하라. 현실 세계의 관례를 준수하여 정보가 자연스럽고 논리적인 순서로 표시되도록 한다.
디자인 방식이 특정 사용자에 따라 크게 달라질 수 있다. 나와 내 동료에게는 아주 명확해 보이는 용어, 개념, 아이콘, 이미지가 사용자에게는 낯설거나 혼란스러울 수 있다.
디자인의 컨트롤이 현실 세계 관례를 따르고 바라던 결과와 맞아 떨어지면(natural mapping이라고 함) 사용자가 인터페이스 작동 방식을 더 쉽게 배우고 기억할 수 있다. 이는 직관적으로 느껴지는 경험을 구축하는 데 도움이 된다.
Tips.
- 사용자가 단어의 정의를 찾아볼 필요 없이 의미를 이해할 수 있는지 확인한다.
- 단어나 개념에 대한 나의 이해가 사용자의 이해와 일치할 것이라고 가정하지 않는다.
- 사용자 조사를 통해 사용자에게 친숙한 용어와 중요한 개념에 대한 그들의 정신 모델을 밝힐 수 있다.
3: 사용자 제어 및 자유(User Control and Freedom)
사용자는 실수로 액션을 수행하는 경우가 많다. 이 원치 않는 액션을 불필요하게 연장된 프로세스를 거치지 않고 종료하려면 명확하게 표시된 "비상구"가 필요하다.
프로세스에서 빠져나오거나 액션을 취소하기 쉬울 때 사람들의 자유로움과 자신감이 커진다. 탈출구를 통해 사용자는 시스템을 계속 제어할 수 있으며 막히거나 좌절감을 느끼는 것을 피할 수 있다.
Tips.
- 실행취소(Undo) 및 다시실행(Redo)을 지원한다.
- 취소(Cancel) 버튼과 같이 현재 인터액션을 빠져나가는 명확한 방법을 보여준다.
- 출구에 명확하게 라벨이 붙어 있고 쉽게 찾을 수 있는지 확인한다.
4: 일관성과 표준(Consistency and Standards)
사용자가 여러 다른 단어, 상황, 액션이 같은 의미인지 의아해할 필요가 없어야 한다. 플랫폼 및 업계 관례를 따른다.
Jakob의 법칙에 따르면 사람들은 대부분의 시간을 우리 제품이 아닌 다른 디지털 제품을 사용하며 보낸다. 다른 제품에 대한 경험은 사용자의 기대(예상)를 설정한다. 일관성을 유지하지 못하면 사용자가 새로운 것을 배우도록 강요하여 사용자의 인지 부담을 증가시킬 수 있다.
Tips.
- 내부 일관성과 외부 일관성 모두를 유지하여 학습용이성(learnability)을 향상시킨다.
- 단일 제품 또는 제품군 내에서 일관성을 유지한다(내부 일관성).
- 확립된 업계 관례(외부 일관성)를 따른다.
5: 에러 예방(Error Prevention)
좋은 에러 메시지가 중요하지만, 최고의 디자인은 애초에 문제가 발생하지 않도록 주의 깊게 예방한다. 에러가 발생하기 쉬운 조건을 제거하거나, 또는 해당 조건을 체크하고 사용자가 액션을 수행하기 전에 확인 옵션을 제공한다.
에러에는 슬립(slips)과 미스테이크(mistakes)라는 두 가지 유형이 있다. 슬립은 부주의로 인해 발생하는 무의식적인 오류이다. 미스테이크는 사용자의 정신 모델과 디자인 간의 불일치로 인한 의식적인 오류이다.
Tips.
- 노력의 우선순위를 정하라. 비용이 높은 에러를 먼저 방지하고 큰 불편을 주지 않는 것은 뒤로 한다.
- 도움이 되는 제약(constraints)과 좋은 기본값(defaults)을 제공하여 슬립을 방지한다.
- 기억 부담을 제거하고, 실행 취소를 지원하고, 사용자에게 경고를 하여 미스테이크를 방지한다.
6: 회상보다는 인식(Recognition Rather than Recall)
항목, 액션, 선택 옵션을 가시화하여 사용자의 기억 부담을 최소화한다. 사용자가 인터페이스의 한 부분에서 다른 부분으로의 정보를 기억할 필요가 없어야 한다. 디자인을 사용하는 데 필요한 정보(예: 필드 레이블 또는 메뉴 항목)는 필요할 때 눈에 보이거나 쉽게 불러올 수 있어야 한다.
인간의 단기 기억은 제한되어 있다. 인식을 촉진하는 인터페이스는 사용자에게 필요한 인지적 노력을 줄여준다.
Tips.
- 사람들에게 인터페이스의 정보를 기억/회상하도록 강요하기보다는 정보를 인식할 수 있도록 한다.
- 사용자에게 암기해야 하는 긴 튜토리얼을 제공하는 대신 상황(맥락)에 맞는 도움말을 제공한다.
- 사용자가 기억해야 하는 정보를 줄인다.
7: 사용의 유연성과 효율성(Flexibility and Efficiency of Use)
초보 사용자에게는 숨겨져 있는 쇼트컷(예: 바로가기, 단축키)을 활용하면 전문 사용자의 인터액션 속도를 높일 수 있으므로 경험이 없는 사용자와 숙련된 사용자 모두에게 적합한 디자인이 될 수 있다. 사용자가 자주 수행하는 액션을 맞춤화할 수 있다.
유연한 프로세스는 다양한 방식으로 수행될 수 있으므로 사람들은 자신에게 적합한 방식을 선택할 수 있다.
Tips.
- 키보드 단축키 및 터치 제스처와 같은 가속기(accelerators)를 제공한다.
- 개별 사용자에 맞게 콘텐츠와 기능을 맞춤화하여 개인화(personalization)를 제공한다.
- 사용자가 원하는 제품 작동 방식을 선택할 수 있도록 하여 맞춤화(customization)를 허용한다.
8: 미적이며 미니멀리스트적인 디자인(Aesthetic and Minimalist Design)
인터페이스에는 관련이 없거나 거의 필요하지 않은 정보가 포함되어서는 안 된다. 인터페이스의 불필요한 추가 정보 하나하나가 필수적인 정보와 경쟁하며 상대의 가시성을 떨어트린다.
이 휴리스틱은 단조로운 디자인을 사용해야 한다는 의미가 아니라 콘텐츠와 시각적 디자인이 필수 사항에 초점을 맞추고 있는지 확인하라는 것이다. 인터페이스의 시각적 요소가 사용자의 주요 목표를 지원하게 해야 한다.
Tips.
- UI의 콘텐츠와 시각적 디자인을 핵심에 집중시킨다.
- 불필요한 요소로 인해 사용자가 실제로 필요한 정보를 놓치는 일이 없도록 한다.
- 주요 목표를 지원하는 콘텐츠와 기능의 우선순위를 지정한다.
9: 사용자가 에러를 인식, 진단, 복구하도록 지원(Help Users Recognize, Diagnose, and Recover from Errors)
에러 메시지는 쉬운 언어(에러 코드 없이)로 표현되어야 하며, 문제를 정확하게 나타내고 해결 방법을 건설적으로 제안해야 한다.
이러한 에러 메시지는 사용자가 알아채고 인지하는 데 도움이 되는 시각적 처리를 통해 제시되어야 한다.
Tips.
- 굵은 빨간색 텍스트와 같은 전통적인 에러 메시지 비쥬얼을 사용한다.
- 기술적인 전문 용어를 사용하지 말고 사용자가 이해할 수 있는 언어로 무엇이 잘못되었는지 알려준다.
- 바로가기(shortcut) 같은 에러를 즉시 해결할 수 있는 솔루션을 사용자에게 제공한다.
10: 도움말 및 문서(Help and Documentation)
시스템에 추가 설명이 필요하지 않은 경우 가장 좋다. 그러나 사용자가 작업을 완료하는 방법을 이해하는 데 도움이 되는 문서를 제공해야 할 수도 있다.
도움말 및 문서 콘텐츠는 검색하기 쉽고 사용자 작업에 초점을 맞춰야 한다. 이를 간결하게 유지하고 수행해야 할 구체적인 단계를 나열하라.
Tips.
- 도움말 문서를 쉽게 검색할 수 있는지 확인한다.
- 가능하다면 사용자가 필요로 하는 순간에 상황에 맞는 문서를 제시한다.
- 수행할 구체적인 단계를 나열한다.
Jakob의 메모
내가 원래 1990년에 Rolf Molich와 협력하여 경험적 평가를 위한 휴리스틱을 개발하였다 [Molich and Nielsen 1990; Nielsen and Molich 1990]. 4년 후, 249개 사용성 문제의 요인 분석(factor analysis)을 기반으로 앞선 휴리스틱을 다듬어[Nielsen 1994a] 최고의 설명을 갖춘 휴리스틱 세트를 도출했고, 그 결과 개정된 휴리스틱 세트[Nielsen 1994b]가 탄생했다.
2020년에는 문서를 업데이트하여 더 많은 설명, 예시, 관련 링크를 추가했다. 휴리스틱 정의를 약간 다듬었지만, 10가지 휴리스틱 자체는 1994년 이후로 계속 유효하고 변하지 않았다. 26년 동안 어떤 사실이 그대로 유지된다면 이는 미래 세대의 사용자 인터페이스에도 적용될 가능성이 높다.
'테스팅타입별 > 사용성(Usability)' 카테고리의 다른 글
WAVE - 웹 접근성 테스팅 도구 (0) | 2024.12.09 |
---|---|
GUI 테스팅과 non-GUI 테스팅 (0) | 2023.08.07 |
사용용이성 테스팅에서 테스터 수 by Myers (0) | 2021.08.27 |
영상자료 - 안드로이드 애플리케이션을 위한 자동화된 접근성 테스팅 (0) | 2018.10.08 |
커맨드 라인 인터페이스(CLI) 기반 시스템의 테스팅 (0) | 2018.09.25 |