2. 목차
• 상용화를 위한 노력
• 테스트 자동화 도구
• Agile 방법론 & 테스팅
22017-11-22
3. 상용화를 위한 노력
• SW 사용 편의성 및 SW사업화 역량 강화
– SW에 대한 시장 및 수요자 요구사항에 부합하는 SW기술 지원 서비스를 통해 SW질적수
준 (완성도, 신뢰도) 제고 및 SW 활용도 향상
• UI/UX 사용성 검증 수행
– 해당 SW제품에 대한 실사용자 관점의 UI/UX 개선 방향성 및 상세 개선안 도출을 위해
사용자 평가 수행
– http://www.measuringux.com
– https://uxpa.org
2017-11-22 3
4. 상용화와 사용성
• 상용 제품의 사용성 개선 효과
– McAfee는 프로그램 사용성 개선을 통해 고객센터 콜 접수 건이 90% 감소
– IBM 사내 인트라넷의 사용성 개선을 통해 업무 소요 시간이 절감되었으며 연 680만 달
러 절감
2017-11-22 4
5. 사용성의 정의
• 소프트웨어가 규정된 조건에서 사용될 때, 사용자에 의해 이해되고 학습되며 선호
될 수 있게 하는 소프트웨어 제품의 능력 (ISO/IEC 25060)
• 특정한 사용 상황 내에서 유효하고, 효율적이며, 만족도를 가지고 특정 사용자에
의해 특정 목표를 획득할 수 있도록 사용되는 제품의 정도 (ISO/IEC 9242-11)
• 회사가 비용을 절감시키고 사용자의 요구와 부합하는 제품을 만들어내기 위해서
개발 사이클 전체에 걸쳐 사용자의 피드백을 받는 개발 방식 (UPA-Usability
Professionals Association)
2017-11-22 5
6. Summary
• 사용성 테스팅에서 가장 중요한 것은 사용자에 대한 이해와 상호작용
• 감성적인 수준에서 사용자들이 시스템에 대해서 어떻게 느꼈는지가 중요
• 사용성 테스팅의 목적은 사용자들이 여러분의 제품을 가장 먼저 생각하도록 만드
는 것
• 제품의 구입 가능성, 서비스의 재방문에 대한 확률을 증가시키는 것은 사용자의
주관적인 반응에 기초
• 사용자의 경험은 측정하기 어렵지만 불가능한 것은 아님
– 사용자의 주관적인 의견도 측정자에게는 객관적인 데이터
2017-11-22 6
7. Heuristic Evaluation (발견적 평가법)
• 시스템 상태의 가시성 (Visibility of system status)
• 시스템과 현실세계의 일치 (Match between system and real world)
• 사용자 제어와 자유 (User control and freedom)
• 일관성과 표준 (Consistency and standards)
• 유용한 오류 메시지 설계 (Design useful error messages)
• 회상보다는 재인 (Recognition rather than recall)
• 사용에서의 유연성과 효율성 (Flexibility and efficiency in use)
• 미적이고 최소주의적인 디자인 (Aesthetic and minimalist design)
• 오류 방지 (Error prevention)
• 도움말과 문서 (Help and documentation)
2017-11-22 7
8. 시스템 상태의 가시성
• 시스템은 항상 사용자에게 적절한 시간 내에 적절한 피드백을 통해 무슨 일이 일
어나고 있는지에 대한 정보를 계속 제공해야 함
2017-11-22 8
9. 시스템과 현실세계의 일치
• 시스템은 컴퓨터 용어보다 사용자에게 익숙한 단어, 구문 및 개념과 같은 사용자
의 언어를 사용해야 함
• 자연스럽고 논리적인 순서에 따라 정보를 표시하고 현실 세계의 규칙을 따라야 함
2017-11-22 9
10. 사용자 제어와 자유
• 사용자는 종종 시스템 기능 선택에 실수를 하는데, 이 때 불필요한 정보 없이 원치
않는 상태를 떠나기 위해 명확하게 표시된 “비상구"를 필요로 함
• 취소 (undo) 및 다시 실행 (redo) 지원
2017-11-22 10
11. 일관성과 표준
• 사용자는 다른 언어, 상황 또는 행동이 같은 의미인지 의문을 가질 필요가 없어야
함
• 플랫폼 규칙 준수
2017-11-22 11
12. 유용한 오류 메시지 설계
• 오류 메시지는 (코드가 아닌) 일반적인 언어로 정확하게 문제를 표시하고 건설적
인 해결책을 제시하여야 함
2017-11-22 12
13. 회상보다는 재인
• 객체, 행위 및 옵션을 가시적으로 표시하여 사용자의 기억 부하를 최소화
• 사용자가 정보를 계속해서 기억할 필요가 없어야 함
• 시스템의 사용 방법은 직관적이거나 원할 때마다 쉽게 검색할 수 있어야 함
2017-11-22 13
14. 사용에서의 유연성과 효율성
• (초보 사용자는 잘 발견하지 못하는) 엑셀러레이터 (단축키, 숨은 기능 등)들은 숙
련자와 비숙련자가 시스템을 전문 사용자처럼 사용할 수 있도록 상호 작용의 속도
를 빠르게 할 수 있음
• 사용자가 빈도가 높은 동작을 조정할 수 있어야 함
2017-05-19 14
15. 미적이고 미니멀리스트 디자인
• 관련이 없거나 거의 필요하지 않은 정보는 다이얼로그에 포함하지 않아야 함
• 다이얼로그에서의 정보의 모든 추가 단위는 관련 단위 정보와 경쟁하여 가시성을
상대적으로 감소시킴
2017-11-22 15
16. 오류 방지
• 좋은 에러 메시지보다 오류를 방지하는 메시지가 더 나음
• 오류가 발생하기 쉬운 조건을 제거하거나 억제하고 사용자에게 작업 진행 전에 확
인 메시지를 제공함
2017-11-22 16
17. 도움말과 문서
• 시스템을 문서 없이 사용하는 것이 더 좋은 개념이지만 도움말 및 문서를 제공할
필요가 있음
• 도움말은 검색이 쉬워야 하고 사용자의 작업에 초점이 맞추어져 있어야 하며 구체
적인 실행의 단계들이 열거되어야 하고 너무 광범위해서는 안됨
2017-11-22 17
18. 사용자 테스트
• 사용성 문제 발견
• 제품 개발기간 동안 지속적으로 수행
• 가능한 최대한 빨리 테스트 시작
• 가능하다고 생각하는 시점은 이미 늦은 시점
2017-11-22 18
19. 사용자 테스트 프로세스
2017-11-22 19
테스트 대상 선정
테스트 시나리오
작성
참가자 선정
테스트 데이터
준비
테스트 시나리오
적합성 평가
테스트 환경 구축
테스트 수행 회고 결과 보고
20. 사용자 테스트 환경
• 테스트 룸의 위치는 관찰자들이 알지 못하도록 함
• 참가자와 관찰자들이 만날 수 없도록 테스트 룸과 관찰실을 준비
2017-11-22 20
테스트 룸 관찰실
화면 전송
전화, 메신저
참가자
진행자
관찰자
21. 주의 사항
• 참가자가 자신의 생각을 지속적으로 이야기하도록 유도
• 참가자에게 영향을 끼치는 행위 금지
– 어떠한 힌트도 제공 금지
– 참가자의 의견에 동의 절대 금지
• 참가자의 개인 정보가 발설되지 않아야 함
2017-11-22 21
22. 성공하는 사용성 테스팅
• 이해관계자들을 테스트에 참여시켜라.
• 간단하고 쉬운 것부터 시작한다.
• 자주 계획하고 상세하게 계획하라.
• 타사 제품과 같이 자사 제품을 벤치마킹 하라.
• 데이터의 신뢰성을 높여라.
• 비즈니스 용어로 말하라.
• 자신감을 보여라.
• 너무 많은 데이터는 독이 된다.
• 데이터를 시각화하고 간단하게 발표하라.
2017-11-22 22
23. 테스트 자동화 도구
• WHY?
– 기존의 설계와 테스트 문서를 분리하던 개발 방식에서 벗어나 설계와 문서를 동기화하
여 문서 작성, 유지보수 등에 도움을 줌으로써 생산성을 높일 수 있음
– 다양한 시스템간의 융합과 이에 따른 SW의 복잡성으로 인한 한계를 극복하기 위해 도구
의 필요성이 증대되는 추세
2017-11-22 23
24. 테스트 자동화 도구
• 테스트 자동화 효과
– 자주 반복되는 테스트 항목에 대한 인적 자원의 손실을 막음
– 휴먼 에러에 대한 불안감을 해소시켜 줌으로써 품질에 대한 확신을 얻음
– 시간과 비용을 줄임
– 테스팅의 정확성을 향상시킴
– Manual Testing으로 불가능한 영역을 커버
2017-11-22 24
===== 상용 =====
1. 테스트 실행 및 로깅 지원 도구
- TestExpress (NCI, System Quality Certification)
* 스마트폰 및 소형 모바일 기기에 최적화된 Black-Box Testing Tool, 주로 임베디드 시스템 개발 시 사용
- LDRA TBurn (MOASOFT)
* SW Dynamic Test
2. 정적 분석 지원 도구
- CodeScroll, Code inspector
- Sparrow
3. 성능 및 모니터링 도구
- Load Runner
===== 공개 =====
1. 테스팅 관리 지원 도구
- Redmine
2. 정적/동적 분석 지원 도구
- Source Monitor
- Valgrind (메모리 디버깅 툴)
3. 성능과 모니터링 도구
- JMeter
4. 설계 지원 도구
- Allpairs (테스트 케이스 작성)