45
모바일 테스트 일반 & 툴 Ahnlab QA 강다솜 141112수요일

모바일 테스트 일반 및 툴

Embed Size (px)

Citation preview

Page 1: 모바일 테스트 일반 및 툴

모바일 테스트 일반 & 툴

Ahnlab QA 강다솜

14년 11월 12일 수요일

Page 2: 모바일 테스트 일반 및 툴

• 2012.01 ~ 2013.12 모바일 앱 QA2014.01 ~ 현재 네트워크 보안 장비 QA

• Twitter / Facebook : @iKooya

• 개인 블로그 : [email protected]

• QA 팀블로그 - 누가바닷컴 : http://noogabar.com - 누가바포럼 : https://www.facebook.com/groups/noogabar/

• 마트 와인 정복기 - 공식 페이지 : https://www.facebook.com/martwinekr- 그룹 : https://www.facebook.com/groups/martwine/

• “이 세상에는 아직 만나보지 못한 친구들이 존재할 뿐”“30살이 되기 전에 독립하기”

14년 11월 12일 수요일

Page 3: 모바일 테스트 일반 및 툴

이번 세션 에서는..

• 1. 테스트에 대한 일반적인 내용

• 2. 효율적인 테스트를 위해서 반드시 필요한 것들

• 3. iOS/ Android 테스트 참고 내용

14년 11월 12일 수요일

Page 4: 모바일 테스트 일반 및 툴

테스트에 대한 오해와 진실

• 테스트는 버그를 찾는 활동을 얘기한다?

• 테스트는 필수가 아닌 옵션이다?

• 테스트는 아무나 해도 상관없다?

• 테스트는 개발이 모두 완료 된 후에 하면

된다?

14년 11월 12일 수요일

Page 5: 모바일 테스트 일반 및 툴

14년 11월 12일 수요일

Page 6: 모바일 테스트 일반 및 툴

현실은?

• 기획 -> 개발 -> 개발자 테스트 -> 출시

14년 11월 12일 수요일

Page 7: 모바일 테스트 일반 및 툴

현실은 왜 그러지 못할까?

버그 없이 개발하는게 더 중요한거 아니야?

테스트. 사실은 어디서부터 시작해야 할지 잘 몰라.

테스트? 하면 좋지만 그 돈으로 회식을 한번 더 하지 뭐!

그 시간에 빨리 출시해서 고객 피드백을 받는게 더 좋으니까

14년 11월 12일 수요일

Page 8: 모바일 테스트 일반 및 툴

중요한 것은 효율적인 테스트• 1) 제품 특성을 분류하고, 중요한 우선순위 찾기

• 2) Risk Based 로 제품 기능의 우선순위를 만들기

• 3) 테스트 환경을 결정하기

• 4) 중요한 기능에 대해서만 Test Case 를 작성하기

• 5) 테스트 수행하기

• 6) BTS(Bug Tracking System) / ITS(Issue Tracking System) 사용하기

14년 11월 12일 수요일

Page 9: 모바일 테스트 일반 및 툴

1) 제품 특성을 분류하기

14년 11월 12일 수요일

Page 10: 모바일 테스트 일반 및 툴

당신의 제품은 어디에?

사용성(UX) 시장성 기능성 신뢰성 보안성

Youtube

Facebook

TESLR

보안제품

방위산업

일반 모바일

O O

O O O

O O O

O O O

O O

O O O

Agile Waterfall

ISO/IEC 25010 품질 평가 모델에서 추출

14년 11월 12일 수요일

Page 11: 모바일 테스트 일반 및 툴

중요한 것은 효율적인 테스트• 1) 제품 특성을 분류하기

• 2) Risk Based 로 제품 기능의 우선순위를 만들기

• 3) 테스트 환경을 결정하기

• 4) 중요한 기능에 대해서만 Test Case 를 작성하기

• 5) 테스트 수행하기

• 6) BTS(Bug Tracking System) / ITS(Issue Tracking System) 사용하기

14년 11월 12일 수요일

Page 12: 모바일 테스트 일반 및 툴

2) 기능 우선 순위 만들기

장애발생 가능성(Likelihood)장애발생 가능성(Likelihood)장애발생 가능성(Likelihood)장애발생 가능성(Likelihood)장애발생 가능성(Likelihood)장애발생 가능성(Likelihood) 영향(Impact)영향(Impact)영향(Impact)영향(Impact)

Risk Item 1

Risk Item 2

Risk Item 3

Risk Item ...

복잡성 새로운 개발의 정도 상호 관계 크기

기술의 난이도/최신성

개발팀 경험 미흡

사용자 취급 중요도

경제적, 안전적 피해 사용 빈도 외부적

가시성

• 리스크 레벨 : 9 (심각, Critical), 5 (높음, High), 3 (보통, Moderate), 1 (낮음, Low), 0 (없음)

14년 11월 12일 수요일

Page 13: 모바일 테스트 일반 및 툴

2) 기능 우선 순위 만들기사업적 리스크

기술적 리스크

14년 11월 12일 수요일

Page 14: 모바일 테스트 일반 및 툴

2) 기능 우선 순위 만들기

• 팀원 들의 합의를 통해 만들어져야 함.

• 발견된 버그를 수정할때, 테스트 할때, 기능을 업데이트할때, 등 많은 부분에서 이 우선순위가 기준이 되어야 함.

• 평가된 리스크를 기반으로 테스트에 대한 우선순위와 정도를 다르게 진행할 수 있다.

• 기본 포멧 문서 제공 (~11/19.수)(https://www.dropbox.com/sh/6ykuu3u5w33cdhl/AAA3rifictNl_ky1DWpEBnKqa?dl=0)

14년 11월 12일 수요일

Page 15: 모바일 테스트 일반 및 툴

중요한 것은 효율적인 테스트• 1) 제품 특성을 분류하기

• 2) Risk Based 로 제품 기능의 우선순위를 만들기

• 3) 테스트 환경을 결정하기

• 4) 중요한 기능에 대해서만 Test Case 를 작성하기

• 5) 테스트 수행하기

• 6) BTS(Bug Tracking System) / ITS(Issue Tracking System) 사용하기

14년 11월 12일 수요일

Page 16: 모바일 테스트 일반 및 툴

3) 테스트 환경을 결정하기

• 테스트를 수행할 단말기 모델, 해상도, OS 버전, 통신 환경을 결정

1) 시장 조사 업체 이용 or 공식 자료 참고 - StatCounter (http://gs.statcounter.com/) - 안드로이드 OS 점유율 (https://developer.android.com/about/dashboards/index.html) - iOS OS 점유율 (https://developer.apple.com/support/appstore/)

2) 제품 내부에 모바일 분석 통계 툴 적용 - 직접 구축 혹은 툴 이용(Flurry, Google Analytics, Localytics, Apsalar

14년 11월 12일 수요일

Page 17: 모바일 테스트 일반 및 툴

OS 별 점유율

안드로이드 (2014.11.03) Version Codename API Distribution

2.2 Froyo 8 0.6%

2.3.3-2.3.7 Gingerbread 10 9.8%

4.0.3-4.0.4 Ice Cream Sandwich 15 8.5%

4.1.x

Jelly Bean

16 22.8%

4.2.x Jelly Bean 17 20.8*

4.3

Jelly Bean

18 7.3%

4.4 KitKat 19 30.2%

iOS (2014.11.10) Version Distribution

Earlier 5%

iOS 7 40%

iOS 8 56%

14년 11월 12일 수요일

Page 18: 모바일 테스트 일반 및 툴

중요한 것은 효율적인 테스트• 1) 제품 특성을 분류하기

• 2) Risk Based 로 제품 기능의 우선순위를 만들기

• 3) 테스트 환경을 결정하기

• 4) 중요한 기능에 대해서만 Test Case 를 작성하기

• 5) 테스트 수행하기

• 6) BTS(Bug Tracking System) / ITS(Issue Tracking System) 사용하기

14년 11월 12일 수요일

Page 19: 모바일 테스트 일반 및 툴

4) Test Case 만들기

• 측정 가능한 상황 + 기대 결과

• Ex) Twitter - 검색기능을 통해서 1명의 유저를 팔로우 한 후, 타임라인에서 친구의 트윗이 정상적으로 표시되는지 확인(친구의 트윗 갯수, 트윗 시간, 사진 첨부 여부, 링크 확인)

• BVT(Build Verification Test) 수준의 Test Case 를 작성: 리스트 분석을 통해 분리한 주요 기능을 참고

• 테스트 케이스는 반드시 수행해야 하는 기본 테스트.테스트 케이스를 기반으로 여러 기능을 자유롭게 테스트

14년 11월 12일 수요일

Page 20: 모바일 테스트 일반 및 툴

Tip. PICT 툴을 이용한 조합 테스트

• 테스트 대상 제품에 여러가지 옵션이 존재할 경우, 최대 커버리지를 확보하면서 Test Case 를 만들기

• Ex) 설정 A (On, OFF) or 설정 B (10, 20, 300) or 설정 C

• 툴/ 사용방법 공유(~11/19.수): https://www.dropbox.com/sh/6ykuu3u5w33cdhl/AAA3rifictNl_ky1DWpEBnKqa?dl=0

14년 11월 12일 수요일

Page 21: 모바일 테스트 일반 및 툴

Tip. PICT 툴을 이용한 조합 테스트 • 로그 백업 기능 개선 사례

- 종류 : 자동 백업, 수동 백업- 저장 위치 : FTP, 로컬 디스크 - 백업 대상 : 관리 장비, 통계 정보, 시스템 로그, 로컬 시스템 - 백업 기간 : 매일, 매주, 매월- 백업 후 로그 유지 : ON, OFF

• PICT 적용 전 Test Case : 71 개

• PICT 적용 후 Test Case : 9 개

• 2 Parameter Combination

14년 11월 12일 수요일

Page 22: 모바일 테스트 일반 및 툴

중요한 것은 효율적인 테스트• 1) 제품 특성을 분류하기

• 2) Risk Based 로 제품 기능의 우선순위를 만들기

• 3) 테스트 환경을 결정하기

• 4) 중요한 기능에 대해서만 Test Case 를 작성하기

• 5) 테스트 수행하기

• 6) BTS(Bug Tracking System) / ITS(Issue Tracking System) 사용하기

14년 11월 12일 수요일

Page 23: 모바일 테스트 일반 및 툴

5) 테스트 수행하기

SnowBall Effect

• Risk Based 기능 개발 및 테스트

• 개발자 테스트

14년 11월 12일 수요일

Page 24: 모바일 테스트 일반 및 툴

• 자사 제품의 슈퍼 컨슈머

• 해당 기능을 개발하지 않은 팀원

• 부모님 그리고 어린 아이들 (Monkey Test)

• 인문계열의 대학생

• 개발자 (Dogfooding)

• 전문 Tester 혹은 QA

테스트는 누가 하면 좋을까?

14년 11월 12일 수요일

Page 25: 모바일 테스트 일반 및 툴

중요한 것은 효율적인 테스트• 1) 제품 특성을 분류하기

• 2) Risk Based 로 제품 기능의 우선순위를 만들기

• 3) 테스트 환경을 결정하기

• 4) 중요한 기능에 대해서만 Test Case 를 작성하기

• 5) 테스트 수행하기

• 6) BTS(Bug Tracking System) / ITS(Issue Tracking System) 사용하기

14년 11월 12일 수요일

Page 26: 모바일 테스트 일반 및 툴

6) BTS / ITS 사용하기 • BTS(Bug Tracking System) / ITS(Issue Tracking System)

• 필수 요소- 발생 환경 (단말기, OS, 해상도, 통신환경)- 이슈 재현 경로

• 무료 프로젝트 협업 관리 툴 : Trello (트렐로)

- 웹, 앱(Android, iOS) 제공- 업무 할당, 기한 설정, 노트 추가, 첨부 파일 추가 가능- 많은 Startup 에서 BTS 로 활용

• 구글 닥스, 엑셀을 통한 이슈 관리는 비추천.

14년 11월 12일 수요일

Page 27: 모바일 테스트 일반 및 툴

• 크라우드 소싱 테스트란 - 대중(Crowd) + 외부 자원 활용(Outsourcing)

- 세계 곳곳에 퍼져 있는 다양한 도메인, 다양한 국가, 다양한 테스트 환경을 가진 테스터를 활용한 테스트

- 최근 테스팅 업계에서 화두가 되기 시작함.

• u-Test 소개 (http://utest.com) - 테스터를 온라인으로 모집하고, 업무를 할당해주는 형태의 Crowdsource Testing 제공

- Tester ( 70,000 + members, 190 + countries )

- 전세계적으로 가장 많이 사용 됨.

(다양한 도메인의 Customer, case study 보유)

- 해외 출시 앱의 경우 해외 통신사 및 환경에서의 테스트,

현지인의 TW 및 UX 감수

- 나이키 러너

크라우드 소싱 테스트

14년 11월 12일 수요일

Page 28: 모바일 테스트 일반 및 툴

iOS 앱 개발 프로세스

화면 설계 프로토 타입 사용성 테스트 피드백 반영

iOS HGI 준수 여부 체크

xCode Analyzer성능 테스트

Test Case기반 테스트

Risk 분석 Test Case 작성

버그 수정

제품 출시 외부 버그 접수& 개선사항 수정 수정사항에 대한

Confirm 테스트

xCode Analyzer 성능 테스트 제품 릴리즈

Risk 기반 개발 & 테스트

14년 11월 12일 수요일

Page 29: 모바일 테스트 일반 및 툴

Android 앱 개발 프로세스

화면 설계 프로토 타입 사용성 테스트 피드백 반영

테스트 환경 결정성능테스트Test Case기반 테스트

버그 수정

제품 출시 외부 버그 접수& 개선사항 수정 수정사항에 대한

Confirm 테스트

성능 테스트 제품 릴리즈

Risk 분석 Test Case 작성 Risk 기반

개발 & 테스트

14년 11월 12일 수요일

Page 30: 모바일 테스트 일반 및 툴

• iOS 7 한글 번역본 (https://www.facebook.com/dailymaso/posts/281403155357497)

• iOS 8 Key Point!

• Tip. 단말기 설정에 따른 예상 동작에 헷갈리는 부분이 있다면, 애플의 기본앱에서 테스트 해보기.

iOS Human Interface Guide

14년 11월 12일 수요일

Page 31: 모바일 테스트 일반 및 툴

iOS HGI (사용자 경험 설계)

• 앱은 즉각 실행 될 수 있어야 한다.(초기 로딩 시간)

• 스플래쉬 스크린 또는 시작 화면 피할 것

14년 11월 12일 수요일

Page 32: 모바일 테스트 일반 및 툴

iOS HGI (사용자 경험 설계)

• 앱을 다시 시작하면, 앱의 마지막 상태로 복원할 것.

• 앱은 항상 종료에 대해 대비해야 한다.(데이터 저장)

• 앱내에서 ‘종료’ 혹은 ‘닫기’ 를 절대 제공하지 말 것.

• 사용자에게 설정에 대해 묻지 말 것.

80%의 사용자에게 필요한 것에 집중

• 많은 정보를 다른 소스로 부터 자동으로 가져오게 할것

• 사용자 입력이 반드시 필요하다면, 앱 내에서 입력 받을것

14년 11월 12일 수요일

Page 33: 모바일 테스트 일반 및 툴

iOS HGI (사용자 경험 설계)

• 앱내에서 ‘종료’ 혹은 ‘닫기’ 를 절대 제공하지 말 것.

• 프로그램 적으로 앱을 종료 시키지 말 것.

모든 앱 기능이 사용 불가능이면,현재 상태와, 화면을 통해 이를 바로 잡는 방법을 기술

일부 앱 기능이 사용 불가능이면,사용자가 그 기능을 사용 하고자 할때, 화면 또는 경고로 이를 바로 잡는 방법을 기술

14년 11월 12일 수요일

Page 34: 모바일 테스트 일반 및 툴

iOS HGI (사용자 경험 설계)

• 사용자에게 앱의 평가는 너무 자주 요구 하지 말것

기본 디바이스 방향에 맞게 앱 구동

(iPhone: 세로, iPad: 현재 디바이스 방향)

• 앱 첫 화면과 가장 유사한 시작 이미지 제공 해야 함

가능하면, 첫 화면에서 EULA 동의를 피할것.

(대신 App Store에서 EULA를 표시할 것)

14년 11월 12일 수요일

Page 35: 모바일 테스트 일반 및 툴

iOS HGI (Layout 설계)

• 쉽게 상호작용 할 수 있게

14년 11월 12일 수요일

Page 36: 모바일 테스트 일반 및 툴

iOS HGI (Layout 설계)

• 일관적인 UI

• 사용자가 설정에서 텍스트 크기를 변경하였을 경우를 항상 준비

• 디바이스 방향 대응

(디바이스의 모든 방향에 핵심 컨텐츠에 집중 할 수 있도록

모든 방향에서 동작 가능 하도록 하는 것이 원칙)

14년 11월 12일 수요일

Page 37: 모바일 테스트 일반 및 툴

iOS HGI (Modal Context)

• Modal 작업은 단순, 짧게, 좁게 집중적으로.

Modal 잡업에 대해 명확하고 안전 종료 방법 제공

계층 구조의 Modal이 필요하면,

그렇지 못할 경우, Modal View, Action Sheet, Alert 등 사용

꼭 필요한 정보(사용자 액션이 가능한) 전달을 위해 Alert을 사용 할것

사용자가 환경설정에서 변경한 Notification 수신 여부를 존중 할것

14년 11월 12일 수요일

Page 38: 모바일 테스트 일반 및 툴

iOS HGI (Interactivity)• 표준 제스처 엄수(모든 앱에서 표준 제스처에 대한 기대 결과를 사용자는 이미 인지하고 있다.)

- 표준 제스처에 다른 행위를 할당하지 말 것.- 새로운 제스처를 정의하지 말 것. (게임은 제외)

Tap Drag Flick Swipe

Double Tap Pinch Touch and Hold Shake14년 11월 12일 수요일

Page 39: 모바일 테스트 일반 및 툴

iOS HGI (Feedback)• 액션에 대해 눈에 띄는 변화로 응답하는 것이 좋다.사용자 행동에 대해 그 결과를 보여주고, 컨트롤을 조작 하였을때 즉각적인 피드백 또는 시간이 걸리는 작업에 대해 그 진행 상황을 알려야 할 필요가 있다.

• Activity Indicator와 같은 애니메이션은 사용자 Feedback의 좋은 예

14년 11월 12일 수요일

Page 40: 모바일 테스트 일반 및 툴

iOS 성능 테스트 툴• xCode Analyze (메모리 릭, 배터리, CPU/메모리 측정 등)

14년 11월 12일 수요일

Page 41: 모바일 테스트 일반 및 툴

Android 몽키 테스트

• $ adb shell monkey -p your.package.name -v 500

• http://developer.android.com/tools/help/monkey.html

14년 11월 12일 수요일

Page 42: 모바일 테스트 일반 및 툴

iOS 테스트 툴

14년 11월 12일 수요일

Page 43: 모바일 테스트 일반 및 툴

• 다음 트로이 (http://troy.labs.daum.net/): 안드로이드, 아이폰 스크린 화면별로 웹 페이지를 테스트 가능

• 모바일 테스트 베드 - D.CAMP (http://dcamp.kr/)

• Mobizen (Android) : 스마트폰 화면을 PC 에서 띄워주고, 화면 녹화 기능

모바일 테스트 기타 툴

※ 스마트폰 별 하드웨어 스펙 정보 - http://www.devicespecifications.com/en

14년 11월 12일 수요일

Page 44: 모바일 테스트 일반 및 툴

이번 세션 에서는..

• 1. 테스트에 대한 일반적인 내용

- 테스트에 대한 오해와 진실

- 개발 프로세스를 꼭 준수해야 하는가

- 테스트가 중요한 이유

2. 효율적인 테스트를 위해서 반드시 필요한 것들

- 리스크 기반의 기능 개발 및 테스트

- 테스트 환경/ 테스터 선정 방법

- 테스트 케이스 작성 및 버그 관리

- 크라우드 소싱 테스트

• 3. iOS/ Android 참고 사항

- 개발 프로세스

- iOS HGI 요약 내용

- 기타 툴

14년 11월 12일 수요일

Page 45: 모바일 테스트 일반 및 툴

감사합니다.

[email protected]년 11월 12일 수요일