IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
한국 developerWorks   >  dW Column  > developerworks

소프트웨어 사용성 확보를 위한 몇 가지 방안



이영석이영석 stone@sqe.co.kr

SOAP, 웹 서비스 등 XML 기반 기술과 BPM을 통한 프로세스 시스템 신봉자로 소프트웨어 품질에 대한 정통부 GS인증 업무를 수행하는 등 개발자 출신 QA라는 흔치 않은 경력을 가지고 있다. 현재 와이즈스톤(www.wisestone.kr) 대표이며, 소프트웨어 품질관리 교육 및 컨설팅 등을 하고 있다.

2008년 5월 13일


우리 주변의 사물을 둘러 보자. 볼펜, 테이프, 책상, 전화, 컴퓨터, 마우스 등 우리 주변의 모든 제품(product) 중 각기 그 제품을 통해 달성하려는 목적이 없는 경우가 없다. 그러므로 모든 제품에는 반드시 목적을 달성하기 위한 기능이라는 것이 제공된다. 그러한 특성을 기능성이라고 한다.

목적을 달성하는 기능은 다양한 방법을 통해 제공될 수 있다. 기능을 제공하는 다양한 방법에 따라, 사용자 관점에서 어떻게 그 기능을 사용하는가에 따라 차이가 생기며 이러한 특성을 사용성(usability)이라고 한다. 즉 모든 제품에는 반드시 기능성이라는 특성과 사용성이라는 특성이 함께 존재한다.

사용성이란?

사용성이란 사용자 인터페이스가 얼마나 사용하기 쉽게 되어 있는지 평가하는 품질 속성이다. 위키백과[1]에 따르면 사용성은 다음 다섯 가지 요소로 정의된다.

  • 학습성(learnability) : 제품을 처음 접했을 때 사용자가 기본 작업을 얼마나 쉽게 수행할 수 있는가?
  • 효율성(efficiency) : 사용자가 제품에 대해 학습 후 얼마나 빨리 작업을 수행할 수 있는가?
  • 기억가능성(memorability) : 일정 시간 제품을 사용하지 않은 후 얼마나 쉽고 능숙하게 다시 사용할 수 있는가?
  • 결함(errors) : 얼마나 많은 결함이 발생되며, 그 결함은 어느 정도로 심각한가? 그리고 그러한 결함을 얼마나 쉽게 수정할 수 있는가?
  • 만족도(satisfaction) : 제품을 사용하면서 얼마만큼 만족을 느끼는가?

조셉 두마스의 "사용성 테스트 가이드북"[2]은 다음과 같은 항목으로 사용성의 의미를 해석한다. 사용성은 사용자가 제품을 사용해 직무를 빠르고 쉽게 완수하는 것을 의미한다. 이 정의는 다음 네 가지 사항에 근거를 둔다.

  1. 사용성이란 사용자에게 초점을 맞추어야 한다.
  2. 사용자는 제품을 사용해 생산성을 높이고자 한다.
  3. 사용자는 제품을 통해 과제를 완수하고자 한다.
  4. 제품이 사용하기 쉬운지는 사용자가 결정한다.

즉 사용성은 그 의미를 논의할 때 반드시 '사용자'의 관점을 가져야 하며, 작업 수행 생산성이라는 관점에서 평가해야 하므로 제품의 목적이 무엇인지에 대한 명확한 정의를 기반으로 논의해야 한다. 사용자의 노력 범주에서 원하는 작업을 수행하지 못한다면 설령 기능성이 높은 제품이라도 사용성이 낮을 수 있다. 또한 사용성을 위해서는 제품의 일관성 등을 통해 기능 습득의 용이함을 제공해야 한다.

사용성을 정의한 국제 표준으로는 ISO/IEC9126 Product Quality, ISO/TR 16982:2002 Ergonomics of human-system interaction, ISO 9241 등이 존재한다.



위로


ISO/IEC의 사용성 매트릭[3]

ISO/IEC에서 정의한 사용성은 말 그대로 소프트웨어가 얼마나 사용하기 편한 기능을 제공하는 지에 대한 능력을 말한다. 가령 어떤 소프트웨어에서 특정 용어가 일관되게 쓰이지 않는 경우 등이 사용성 관점의 문제라 할 수 있다. 즉 "프린트"와 "출력"은 같은 의미를 사용자에게 전달하고자 하지만 일관된 용어를 사용하지 않는 것은 분명 사용자 입장에서 작은 혼란을 야기할 수 있다. 팝업창의 "확인"과 "OK"도 마찬가지다.

또한 회원 가입을 위해 사용자가 많은 정보를 입력해야 하는 인터페이스에서 각 필드에 어떠한 값을 입력해야 하는지 혼란스러운 경우, 이를테면 주민번호에 "-"를 넣어야 하는지 여부를 고민할 수 있는 경우에 라벨을 통해 "123456-1234567"이라는 입력 예문을 제공하는 소프트웨어와 제공하지 않는 소프트웨어는 그 사용성에서 차이가 있다고 할 수 있다.

이러한 예처럼 사용자 입장에서 소프트웨어 사용에 혼란을 느끼지 않고 편하게 이용할 수 있는 소프트웨어가 품질이 좋은 소프트웨어라고 할 수 있다. 사용 편의성이라는 것이 정성적(qualitative)인 부분이 커서 정량화(quantitative)해 측정하기 쉽지 않다. 하지만 몇 가지 구체적인 사례를 체크리스트로 작성해 사용성을 측정할 수 있다.

사용성의 하위 특성으로는 인터페이스가 일관적이고 입출력 값의 예시가 명확해 사용자가 소프트웨어의 기능을 정확하게 이해하고 사용할 수 있는지 여부에 대한 이해가능성(understandability), 얼마나 쉽게 기능의 사용법을 익힐 수 있는지 여부의 학습가능성, 기능을 사용할 때 그 조작 방법의 일정한 패턴을 제공해 얼마나 쉽게 운영할 수 있는지 여부의 운영성(operability), 사용자 선호에 따라 인터페이스를 조정할 수 있는지 등의 사용자 선호 만족에 대한 선호도(attractiveness) 등이 있다.

이러한 사용성 테스트는 현재 대부분의 경우, 제품이 출시되기 직전에 수행하는 경우가 많다. 제품 개발을 마치고 몇몇 테스트 엔지니어를 통해 테스트를 수행한 후 문제점을 발견해 사용성 문제를 해결하려는 것이다. 하지만 사용성 테스트는 설계와 개발 과정 전반에서 진행해야 한다. 출시 직전에 발견된 사용성 문제는 제품 설계 의도와 연관이 깊은 경우가 대부분이므로 짧은 시간에 수정하기 어렵다. 가령 마우스를 통한 입력 제품을 터치스크린을 통한 입력 제품으로 바꾸는 것은 단순히 발견된 기능상의 버그를 고치는 것처럼 간단한 일이 아니다. 더구나 설계와 개발 과정에서 사용성 테스트는 제품의 개발 목표를 재고하게 하여 제품 전체 품질을 높이는 효과가 있다.

사용성 확보를 위한 몇 가지 방안

여기서 소개하는 사용성 확보를 위한 몇 가지 방법은 완성된 제품의 테스트뿐 아니라 설계 시에 적극적으로 적용 가능한 것들이다. 또한 인터페이스 설계에 도움을 줄 수 있는 방법뿐 아니라 제품 기획 시 요구사항을 수집하는 데 도움을 주는 방안들이다.

인지적 모델링 방법(cognitive modeling method)
사용자가 작업을 수행하면서 소요하는 시간을 예상할 수 있도록 해주는 계산 가능 모델을 작성하는 방법이다. 이러한 방법에서는 심리학적인 측면과 경험적 수치를 이용해 인지 과정과 움직임을 기반으로 평가 모델을 작성한다. 즉 사람의 반응 과정은 "지각", "인지", "움직임"으로 구분할 수 있으며, 각각의 과정에서 평균적으로 걸리는 통계적 시간 자료를 이용해 제품 사용에 걸리는 시간을 예측하고 평가할 수 있다. 이러한 방법을 통해 사용자 인터페이스 개선과 발생 가능한 문제를 예측하는 데 도움을 얻을 수 있다.

인스펙션 방법(inspection method)
인스펙션 방법은 실험자가 제품을 사용하는 사용자를 관찰하거나 전문가 팀이 제품 테스팅과 평가 과정을 관찰하는 방법이다. 이러한 방법을 통해 작업에 대한 수행 시간과 작업 과정 등의 데이터를 수집할 수 있다. 이러한 방법의 예로, 몇 가지 가이드라인을 기반으로 하여 사용성 전문가의 가이드에 따라 시스템을 리뷰하는 사용성 인스펙션(usability inspection), 사용자와 개발자 그리고 사용성 엔지니어가 함께 제품을 평가하며 논의해 다양한 관점에서 평가할 수 있는 다원적 인스펙션(pluralistic inspection), 조사관이 실제 업무 환경에서 작업하는 사람들을 관찰해 그들의 요구사항과 업무에 대해 자료를 조사하는 액티비티 분석(activity analysis) 등의 방법이 있다.

조사적 방법(inquiry method)
조사적 방법이란 사용자로부터 품질 데이터를 모으는 방법이다. 이 과정을 통해 사용자의 요구사항 파악도 가능하다. 예를 들어 앙케이트 조사(questionaire/survey)가 이러한 방법이라 할 수 있다. 앙케이트 조사는 낮은 비용과 별도의 테스팅 설비 없이 사용자의 의견을 수집할 수 있는 방법이다. 설문 작성자가 제품을 사용한 경험이 있다면, 앙케이트 조사 결과는 제품의 사용성이 부족한 부분을 파악하는 데 큰 도움이 된다. 또한 포커스 그룹(focus group)을 이용하는 방법도 있다. 포커스 그룹은 특별한 이슈와 논의사항을 중재자(moderator)의 진행으로 토의하는 방법이다. 예를 들어 신제품 기획을 위해 제품 개발 시 사용자가 기대하는 바를 사용자들이 모여 논의하는 방식으로 진행할 수 있다. 비디오 촬영이나 음성 녹음 등으로 효과를 높일 수 있다. 이러한 방식으로 수집된 정보는 품질적인 데이터 이외에도 제품 기획에 유용한 사용자의 좋은 아이디어를 모을 수 있는 효과가 있다.

프로토타이핑 방법(prototyping method)
프로토타이핑을 이용해 사용성을 테스트할 수도 있다. 이 방법은 개발 초기에 제품의 사용성을 검토하고 확인하기 위한 작업으로 프로토타이핑을 이용한다. 이렇게 하면 별도의 평가 도구나 예측 기법을 이용하지 않고 빠르고 쉽게 사용자 인터페이스 등을 평가할 수 있다. 또한 실제 제품이 제작되기 이전에 평가를 할 수 있기 때문에 설계 변경에 대한 부담과 비용을 줄일 수 있다.

사용성 테스트 방법(usability testing method)
사용성 테스트 방법은 품질에 대한 정보를 얻기 위해 직접 대상 제품을 테스팅하여 평가하는 방법이다. 사용자들에게 특정 작업을 부여하고 그 작업을 수행하는 시간을 측정할 수 있으며, 작업 수행 시 제품에 대한 이해도와 문제점 등을 파악할 수 있다. 이러한 방법의 예로, 사용성 테스트를 할 수 있는 테스트 연구소에 사용자의 작업환경을 구성한 뒤, 사용자의 동작을 비디오 또는 모니터 공유 등의 방법으로 사용자를 관찰하는 원격지 사용성 테스트(remote usability testing), 사용자가 일련의 작업을 수행하는 중에 자신의 생각을 이야기하도록 하고 그 정보를 수집하는 혼잣말(thinking aloud) 등의 방법이 있다. 이 방법은 앙케이트 등으로는 정확히 파악하기 어려운 사용자의 내적 생각과 느낌을 수집할 수 있다는 것이 장점이다. 이 방법도 비디오 촬영 등을 통해 효과를 높일 수 있다.

그밖에 새로운 제품을 접한 사용자의 생각 절차를 파악함으로써 제품의 학습성이 쉬운지를 평가하기 위한 인지적 워크스루(cognitive walkthrough), 제품 평가시 다른 제품의 평가 결과 기반으로 비교 평가하는 벤치마킹 등의 방법이 있다. 사용성 평가 방법들을 비교한 정보는 위키백과에서 찾아볼 수 있다[4].



위로


후기

제품의 사용성을 확보한다는 것은 많은 긍정적인 효과를 기업에게 준다. 일단 사용자들의 좋은 평가로 인해 제품 판매량이 늘어날 것이며, 사용자 만족을 통해 기업 이미지 개선에도 좋은 영향을 줄 것이다. 또한 이러한 좋은 기업 이미지는 해당 기업의 타 제품에도 영향을 줘 그 제품 판매에도 긍정적 영향을 미친다. 이밖에 판매된 제품의 유지보수 비용 절감 및 교육 비용 절감 등 긍정적 효과도 기대할 수 있다.

제품의 과공급 현상은 소프트웨어 산업에서도 예외 없이 벌어지고 있다. 더 이상 단순히 기능이 많은 제품이라고 해서 사용자에게 선택되지는 않는다. 똑 같은 기능을 제공하는 제품이라면, 사용자는 사용하기 편하고 사용상에 만족을 줄 수 있는 제품을 선택할 것이 자명하기 때문이다.




위로


[1] http://www.wikipedia.org

[2] 조셉 두마스•제니스 레디쉬, 사용성 테스트 가이드북, 한솜미디어, 2004

[3] ISO/IEC 9126-2 : Software Engineering - Product Quality Part2 - External Metrics, 2001

[4] http://en.wikipedia.org/wiki/Comparison_of_usability_evaluation_methods



이 문서 북마킹 하기

mar.gar.in mar.gar.in naver naver eolin eolin del.icio.us del.icio.us



위로


[지난 developerWorks Column 보기]

사이트 여행

dW 커뮤니티
포럼 | 블로그 | Spaces
dW Student Community

로컬 컨텐츠

행사 및 세미나

기획 기사

개발자 입문

튜토리얼 및 교육

TOP 10 인기자료

SW 다운로드

RSS 피드

뉴스레터
 
  
자바스크립트가 작동이 중지되었습니다. 이 기능을 수행하시려면 브라우저에서 자바스크립스트를 작동시켜 주시거나 이곳을 클릭해주세요.

Special offers
Screencast
IBM SOA Sandbox 시험판
dW Student Community
로보코드
코드 트레이닝


    IBM 소개 개인정보 보호정책 문의