43
AWS Device Farm을 이용한 모바일 APP 테스팅 김용우 매니저 ([email protected]) Partner Solutions Architect, Amazon Web Services

AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Embed Size (px)

Citation preview

Page 1: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

AWS Device Farm을 이용한

모바일 APP 테스팅

김용우 매니저 ([email protected])

Partner Solutions Architect, Amazon Web Services

Page 2: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

목 차

서비스 출시배경

AWS Device Farm 제공 서비스

사용사례

이용요금

요약

Page 3: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

어플리케이션 품질관리(QC/QA)의 중요성

• 80%의 사용자는 App문제 발생시 3번이상

다시 시도해 보지 않고 삭제함

• 32% 사용자는 이러한 문제가 발생하면 유사한

기능의 다른 앱을 찾음

• 34%의 사용자는 사용자 리뷰에 기반하여 App을 구매

Failing to meet mobile app user expectations - A mobile app user survey from Dimensional Research (2015. 4)http://techbeacon.com/study-reveals-top-mobile-app-performance-failures

Page 4: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

고 품질 앱을 제공하는 것이 어려운 이유?

기기의 스펙 차이로 인한 이슈 발생

사용자의실제 기기와 같은 기종으로

테스트 필요

시중에 너무 많은 디바이스 및 OS

버전이 혼재

모든 모바일 디바이스를 갖추고 사전에

테스트 하는 것은 사실상 불가능함

수작업에 의한 테스트는 시간이 오래 걸림

Open Signal - Android Fragmentation Visualized (2015/8)

http://opensignal.com/reports/2015/android-fragmentation/

Page 5: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

목 차

서비스 출시배경

AWS Device Farm 제공 서비스

사용사례

이용요금

요약

Page 6: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

자동화테스팅

AWS에서제공하는다양한디바이스를이용해병렬테스팅

디바이스에원격접속

웹브라우저를통해실시간으로실제디바이스에

원격접속

Page 7: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Android, iOS, Fire OS 앱을

업로드후 테스트 항목을

설정하고 원하는 디바이스 선택

선택한 디바이스를 넣고병렬로 앱 테스팅 수행

버그, 퍼포먼스 등의 문제를몇 분 안에 상세하게 리포팅

YOUR

APP +

AWS 클라우드에 호스팅 된 수많은 실제 스마트 폰, 태블릿 및 기타 디바이스로 빠르고

안전하게 Android, iOS, Fire OS 용 앱을 테스트

자동화 테스팅

Page 8: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

서비스 제공 디바이스

디바이스 프로파일은 제조 회사/타입 & 모델/OS버전 등으로 분류

AWS데이터 센터에 호스팅 되어 있어 고객의 확장 요구에 대응

충분한 수량( 많은 동일한 디바이스 프로파일)을 보유

루트권한은 동작하지 않음

새로운 디바이스가 발매되면 추가됨

새로운 디바이스이용 가능한 최신디바이스 세트 AWS데이터 센터

Page 9: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

앱 등록후 테스트를 진행할 디바이스를 리스트에서 선택하여 테스트 풀을 구성

(자동으로 해당 앱에 대한 호환성 테스트 수행)

서비스 제공 디바이스 (계속)

Page 10: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

현재 이용가능한 디바이스 (2016.6.01)

https://aws.amazon.com/device-farm/device-list/

Page 11: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

• 프로젝트 별로 최적의 테스트 프레임워크를 사용하여 테스팅 구성

• 개발 팀과 QA팀에서 요건이 다르더라도 하나의 공통 플랫폼에 통합가능

테스트자동화프레임워크

Built-in : Explorer Built-in : Fuzz

Buil-in: Fuzz Appium Java (Junit, TestNG)

Appium Java (Junit, TestNG) Appium Python

Appium Python Calabash

Calabash UI Automation

Instrumentation XCTest

Uiautomator XCTest UI

복수의테스트프레임워크지원

Page 12: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Github – AWS Labs 샘플

Page 13: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

기본제공 테스트 Suite – Fuzz 테스트

빌트인 Fuzz시험

• Fuzz시험은 앱에 여러 사용자 입력(터치, 스와이프, 키보드 입력) 이벤트를 통해 UI테스트실시

• 이벤트 수, 간격, 랜덤 이벤트에 사용되는 난수(seed)를 설정

장점

• 테스트 Script 없이 손쉽게 테스트 수행

• 몇 분 내에 호환성 문제를 파악가능

• 테스트 스크립트는 다음의 동작을 수행

• 앱 설치 / 앱의 기동 / Fuzz시험 / 언 인스톨

Page 14: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

결과 리포트

리포트는, 각 디바이스별 상세 정보뿐 아니라 다양한 테스트 결과를 포함

성공/실패 정보

Crash 리포트

테스트 로그

디바이스 로그

스크린 샷

성능 정보

Page 15: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

개개의 문제를 파고들어 조사가능 [ 샘플 앱 Crash 예시]

결과 리포트 – 문제 원인파악

Page 16: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

테스트 중 캡쳐된 스크린 샷 확인

결과 리포트 – 스크린 샷

Page 17: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

테스트 중 사용된 성능(CPU, 메모리 이용, 스레드 수)을 조사

결과 리포트 – 성능/소요자원

Page 18: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

테스트에서 작성된 로그 파일을 확인

결과 리포트 – 로그확인

Page 19: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Jenkins 플러그인

Jenkins CI서버와 AWS Device Farm을 기능적으로 연계 하는 플러그인

AWS Device Farm Jenkins Pluginhttps://github.com/awslabs/aws-device-farm-jenkins-plugin

Page 20: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

테스트 결과(스크린 샷 로그 등)을 다운로드 하는 것도 가능.

Jenkins 플러그인

Page 21: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Gradle 플러그인

AWS Device Farm

Page 22: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

자동화테스팅

AWS에서제공하는다양한디바이스를이용해병렬테스팅

디바이스에원격접속

웹브라우저를통해실시간으로실제디바이스에

원격접속

Page 23: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

원격으로 접속할 디바이스 선택

Page 24: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

웹을 통한 디바이스 접속

앱업로드앱실행

Page 25: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

원격 테스트 실행 로그 및 세션 레코딩

레코딩화면

Page 26: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

모든통신은

SSL 사용

테스트후APP삭제

모든외부

데이터삭제

AWS저장파일30일후삭제

디바이스독점사용

각기기는독립적

Device Farm의 보안

Page 27: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

목 차

서비스 출시배경

AWS Device Farm 제공 서비스

사용사례

이용요금

요약

Page 28: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

힘들게 만든 우리 앱을 AWS에서 테스트 해보겠습니다!

Pig_brothers.apk

Page 29: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

1. 프로젝트 작성 2. 앱 업로드

Device Farm 테스트 준비절차

3. 앱 정보 확인 4. 테스트 설정

Page 30: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

5. 디바이스 풀구성

6. 디바이스 설정

Page 31: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

7. 테스트 수행/결과

Device Farm 테스트 결과8. 테스트 스크린 샷

Page 32: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Device Farm 테스트 결과 – 자원 사용률 확인

Galaxy Note 5

Galaxy s3

* 기기성능에따른자원사용률 차이

Page 33: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Explorer 테스트 – 스타트 컴퍼니

Page 34: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Explorer 테스트 – 사용자 ID 및 Password

Page 35: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Explorer 테스트 – 실행결과 Summary

Page 36: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Explorer 테스트 – 실행결과 상세

테스트실행결과및로그

다운로드

Page 37: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

서비스 출시배경

AWS Device Farm 제공 서비스

사용사례

이용요금

요약

목 차

Page 38: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

서비스 이용요금

• 종량 과금(Pay as you go)

• 테스트를 실행하는데 필요한 Device Minutes, 사용시간(분)

무료제공: 250 Device Minutes

무료 소진후:1 Device Minute 당 $0.17 과금

• 정액옵션(Fixed Price)

• 1개의 디바이스를 월 $250 에 이용 (디바이스 숫자가 아닌 Concurrency 갯수)

정액으로 디바이스 이용

Subscription을 변경하지 않아도 언제든지 디바이스 변경가능

Android Family(Fire OS포함) 또는 IOS Family 중 선택

Page 39: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Concurrency

(동시 테스트)

시간

종량 과금

매월 250×2=$500

디바이스 2개에 대한 정액요금 계약시

Page 40: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

서비스 출시배경

AWS Device Farm 제공 서비스

사용사례

이용요금

요약

목 차

Page 41: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

• 이미 테스트 자동화를 이용 혹은 계획하고 있다.

• 더 많은 디바이스를 이용하고 싶다.

• 자비로 기기 및 인프라를 관리하고 싶지 않다

• 아직테스트자동화를 이용하지않고있다.

• 테스트스크립트를작성하는 자원이부족하다.

• 테스트를실시하는자원이 부족하다

언제 사용해야 하나?

지금바로 모든기능을시험해보세요!

간단한 Fuzz 테스트 부터시작하세요! (무료디바이스 Mins 250)

Page 42: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Online Labs & Training

Gain confidence and hands-on experience with AWS.

Watch free Instructional Videos and explore Self-Paced Labs

Instructor Led Classes

Learn how to design, deploy and operate highly available, cost-

effective and secure applications on AWS in courses led by qualified

AWS instructors

Validate your technical expertise with AWS and use practice exams to help you

prepare for AWS Certification

AWS Certification

More info at http://aws.amazon.com/training

Page 43: AWS Innovate: Mobile App testing with AWS Device Farm- Kevin Kim

Thank You for Attending AWS Innovate

We hope you found it interesting! Do provide us with your feedback for the session and complete the feedback form.

Let us know your thoughts of today’s event and how we can improve the event experience for you in the future.