testexplorer 소개 - android application gui testing tool

19
TestExplorer 소소 ( Android application GUI testing tool - 100% automated testing in the entire development process, possible to monkey testing and regression testing)

Upload: hyunae-lee

Post on 11-Apr-2017

2.846 views

Category:

Software


11 download

TRANSCRIPT

Page 1: TestExplorer 소개 - Android application GUI testing tool

TestExplorer 소개( Android application GUI testing tool - 100% automated testing in the entire development process, possible to monkey testing and regression testing)

Page 2: TestExplorer 소개 - Android application GUI testing tool

자동 시험 도구의 필요성

UI 변경으로부터 자유롭고 다양한 안드로이드 단말기를 대상으로사용자 부담 없이 Testing 할 수 있는 사용하기 쉬운 도구가 필요함 !

자동 시험 도구가 절실한 안드로이드 App» 지속적 기능 Upgrade 가 요구되는 App» 단기간 내 Release 가 요구되는 App» 다양한 모델의 단말기 지원이 요구되는 App» OS 하위 호환성 유지가 요구되는 App

추가적인 특징• Web UI 로 구현 ( Hybrid Application )• 안드로이드 버전별 앱이 존재함• 전문적인 검증조직을 갖추기가 어렵다 .

2015 년 24,000 unique Android Devices

Page 3: TestExplorer 소개 - Android application GUI testing tool

Click Swipe Text Input Back Space Rotate

TestExplorer 는 ?

GUI 기반 안드로이드 앱 자동 시험 도구 (Android GUI app testing tool)일반적으로 앱을 구동하는 Event ( Touch Click, Swipe, Back Space, Rotate ) 를 실행하여 앱의 이상 유무를 판단하는 GUI 동적테스팅도구

* GUI : Graphic User Interface

Page 4: TestExplorer 소개 - Android application GUI testing tool

TestExplorer 개요100% 완전 자동화된 GUI 테스팅 기술 (100% Automated GUI Testing)

소스로부터 어플리케이션의 생성 ( BUILD ), Target Device 로의 다운로딩 ( Downloading), Target De-vice 에서의 실행 (RUN), GUI 탐색 (Explore), GUI Tree 생성 (Generate GUI Tree), Test Script 생성 ( Generate Test Script ), Test Script 실행 , 시험 결과 Report 의 완전 자동화된 GUI 테스팅 기술 .

사용자

APP BUILD Download Run GUI Explore

GUI TreeTest Script

FULL AUTOMA-TION

Run Test Script

* GUI Tree : GUI 를 구성하는 화면과 Event 를 Tree 모델로 형상화 한것

Page 5: TestExplorer 소개 - Android application GUI testing tool

5

TestExplorer 특징100% GUI자동시험 도구

Test Script자동생성

성능개선정보제공Smart

Monkey Test

개발도구연동

Page 6: TestExplorer 소개 - Android application GUI testing tool

특징 1. 100% GUI 자동 시험 도구

♣ GUI 시험 전과정의 자동화 구현 - 단한번의 클릭으로 GUI 시험이 가능 .

Download APK Automatic GUI Testing

Test Report

▶ 향후 스케쥴러로 등록 -> 예정된 시간에 자동실행 기능 지원 예정

시험에 필요한 노력을 최소화 !시험에 요구되는 노력 , 시험도구에 대한 지식 , 시험환경구축 ,…

TEST EXPLORER

Page 7: TestExplorer 소개 - Android application GUI testing tool

7

특징 2. Test Script 자동 생성

♣ Test Script 를 자동생성함으로서 Test Script 에 대한 부담이 없다 . - 생성된 Test Script 는 Regression Test 용도로 사용 가능 - 자동생성이 가능함으로 GUI 변경시에도 사용자가 가지는 부담은 없다 .

APK 실행 및 분석 GUI Tree 자동 생성 Test Script 자동 생성

Test Script 생성 ( 수정 ) 업무로부터의 해방잦은 UI 변경 , 다양한 단말기 해상도 등 Test Script 수정에 대한 부담감

TEST EXPLORER

Page 8: TestExplorer 소개 - Android application GUI testing tool

특징 3. 성능 개선 정보 제공

♣ 시험중 취합한 다양한 정보를 제공 . - 안드로이드 시스템이 제공하는 CPU Performance, Process, Memory Status 정보 - 성능을 판별할수 있는 이벤트별 응답시간 측정 . - Code Coverage Report ( 소스제공시 가능 ) - 안드로이드 System & App Log

Memory information

CPU & Process

Response Time (10ms)

시험 완료 후 결과 정보의 부족 재연과정은 기본 , 가능한 많은 정보가 필요 , 성능측정 정보 요구

TEST EXPLORER

Page 9: TestExplorer 소개 - Android application GUI testing tool

특징 4. Smart Monkey Test 안드로이드 Monkey 의 부족한 기능

재연경로의 추출 , 시험결과 정보 부족 , 수작업 실행과정 , 단순 랜덤 시험만 가능현실적이지 않은 에러 발견 , 한번 실행후 리부팅필요

TEST EXPLORER

♣ 상세한 재연 경로 제공 ( Regression 시험 가능 )♣ 간편 실행 ( 자동 APK Download & 실행 ) ♣ 자동 재실행 가능 ( 전체 탐색할때까지 , 리부팅 X )♣ 시험중 다양한 정보 Profiling ( Log, System, Memory )♣ 특정 이벤트 조합 기능 제공 ( ex : ID/PWD )♣ 스케쥴러 자동 실행 기능♣ Source Coverage Report 제공

Page 10: TestExplorer 소개 - Android application GUI testing tool

특징 5. 개발도구와 연동

♣ Junit 호환의 Test Script 제공1. Test Explorer : Junit 와 호환 Test Script Export2. Android Studio( 통합개발환경 ) Import3. 실시간 디버깅 ( Runtime Debugging) : breakpoint, 변수 및 레지스터 보기

Test Script

개발자 통합개발환경 (IDE) 와의 연동통합개발환경 (Eclipse, Android Studio) 에서 재연 및 실시간 Debug 가능

TEST EXPLORER

Page 11: TestExplorer 소개 - Android application GUI testing tool

개발과정의 시험 적용사례 [ Tomdroid ] - 1

< : Google play > < : Web Site >

기능 : 서버로 저장 , Desktop 용 Tomboy 와 동기화가 가능한 노트 프로그램 특징 : 오픈소스로 운영

Page 12: TestExplorer 소개 - Android application GUI testing tool

개발과정의 시험 적용사례 [ Tomdroid ] - 2

V 0.7.5(2014-01-04)

V 0.7.4(2013-12-24)

beta 0.7.2(2012-10-17) Version Date 비고

Beta 0.7.2 2012-10-17 시험대상버전Beta 0.7.3 2013-10-24

V 0.7.4 2013-12.24 정식버전V 0.7.5 2014-01--4 현 최종정식버전

Page 13: TestExplorer 소개 - Android application GUI testing tool

개발과정의 시험 적용사례 [ Tomdroid ] - 3

Version Date 비고Beta 0.7.2 2012-10-17 시험대상버전Beta 0.7.3 2013-10-24 0.7.2 이후 1 년

0.7.2 버전이후 1 년동안 찾아낸 버그

Page 14: TestExplorer 소개 - Android application GUI testing tool

개발과정의 시험 적용사례 [ Tomdroid ] - 4

TestExplorer 의 자동 시험 결과 - 4 개의 Crash 발견 .

LONG_CLICK LIST_ITEM_SELECT LIST_ITEM_SELECTLIST_ITEM_SELECT

03-07 15:17:49.951 E/AndroidRuntime(21818): FATAL EXCEPTION: main03-07 15:17:49.951 E/AndroidRuntime(21818): Process: org.tomdroid, PID: 2181803-07 15:17:49.951 E/AndroidRuntime(21818): java.lang.NullPointerExcep-tion: Attempt to invoke virtual method 'java.lang.String org.tom-droid.Note.getGuid()' on a null object reference

03-07 15:18:54.031 E/AndroidRuntime(21889): FATAL EXCEPTION: main03-07 15:18:54.031 E/AndroidRuntime(21889): Process: org.tomdroid, PID: 2188903-07 15:18:54.031 E/AndroidRuntime(21889): java.lang.NullPointerEx-ception: Attempt to invoke virtual method 'boolean java.io.File.isFile()' on a null object reference

Crash 가 발생한 재연경로과 해당 부분 로그 #1

TEx-CRASH #1

TEx-CRASH #2

Page 15: TestExplorer 소개 - Android application GUI testing tool

개발과정의 시험 적용사례 [ Tomdroid ] - 5

02-01 16:14:56.554 E/AndroidRuntime(23911): FATAL EXCEPTION: main02-01 16:14:56.554 E/AndroidRuntime(23911): java.lang.RuntimeExcep-tion: Unable to destroy activity {org.tomdroid/org.tomdroid.ui.EditNote}: java.lang.NullPointerException02-01 16:14:56.554 E/AndroidRuntime(23911): at android.app.Activi-tyThread.performDestroyActivity(ActivityThread.java:3650)

02-02 15:26:19.613 E/AndroidRuntime(26506): FATAL EXCEPTION: main02-02 15:26:19.613 E/AndroidRuntime(26506): java.lang.NullPointerEx-ception02-02 15:26:19.613 E/AndroidRuntime(26506): at org.tomdroid.ui.Edit-Note.updateNoteContent(EditNote.java:470)02-02 15:26:19.613 E/AndroidRuntime(26506): at org.tomdroid.ui.Edit-Note.saveNote(EditNote.java:478)

Crash 가 발생한 재연경로과 해당 부분 로그 #2 TEx-CRASH #3

TEx-CRASH #4

CLICK CLICK CLICK CLICK

Page 16: TestExplorer 소개 - Android application GUI testing tool

개발과정의 시험 적용사례 [ Tomdroid ] - 6

LONG_CLICK

LIST_ITEM_SELECT

LIST_ITEM_SELECT LIST_ITEM_SELECT

일치 일치

이 세가지 Critical 문제는 시험결과 로그만 존재하며 , 수작업으로도 재연이 안됨 !( 안드로이드 monkey 로 시험했을것으로 추정됨 )

TestExplorer 의 자동 시험 결과 vs Tomdroid 0.7.3 bug report Tomdroid 의 개발 과정중 발견한 5 개의 Critical 문제중 , 재연이 가능한 Crash Error 는 모두 발견 추가적인 Critical 문제 발견함 ( 재연경로대로 재연안되나 발생했을때의 화면과 정보가 존재함 )

개발과정에 있어 TestExplorer 의 가치를 증명할 수 있었던 사례로 판단됨

Page 17: TestExplorer 소개 - Android application GUI testing tool

TestExplorer 이점기능 이점

100% 자동화 사용방법이 간단하여 시험에 부담감 감소실행에 대한 부담 감소 ( CI 또는 서버 스케줄러를 통한 자동실행 )주기적 반복시험으로 Side Effect 의 조기 발견 가능

Test Script 자동 생성 시험에 대한 리소스 최소화UI 변경 및 다양한 단말기 대상 시험 시에도 Test Script 작성 불필요

Profiling 정보 에러 발견 당시의 Profiling 정보는 개발자의 Debug 에 도움이 됨성능 ( 응답시간 ) 측정 정보는 성능판단에 객관적 기준점 제공 가능개발자에게 성능개선에 필요한 자료를 제공

개발도구와 연동(Junit 호환 TestScript)

개발자가 직접 Debuging 할 수 있는 환경을 제공 .

Page 18: TestExplorer 소개 - Android application GUI testing tool

Q & A

Page 19: TestExplorer 소개 - Android application GUI testing tool

Thank you

본사 463-400 경기도 성남시 분당구 대왕판교로 644 번길 49 한컴타워 3 층 031-627-3000연구소 463-400 경기도 성남시 분당구 판교로 228 번길 17 판교 7 벤처밸리 2 단지 1 동 9 층 031-600-5000

MDS 테크놀로지㈜ www.mdstec.com