TestExplorer is 100% automated testing solution for Android application based on GUI which is available in entire development process from development and verification.
- A dynamic GUI testing tool for detecting the abnormality of the application by running the event (Touch, Click, Swipe, Back Space, Rotate, etc.)
- 100% automated GUI testing tool in entire development process (App building with source, Installing App, Running App on target device, GUI Exploring, Generating GUI tree, Generating test script, Running test script and Reporting)
1. TestExplorer 소개
( Android application GUI testing tool -
100% automated testing in the entire development process,
possible to monkey testing and regression testing)
2. 자동 시험 도구의 필요성
UI변경으로부터 자유롭고 다양한 안드로이드 단말기를 대상으로
사용자 부담 없이 Testing 할 수 있는 사용하기 쉬운 도구가 필요함 !
자동 시험 도구가 절실한 안드로이드 App
» 지속적 기능 Upgrade가 요구되는 App
» 단기간 내 Release가 요구되는 App
» 다양한 모델의 단말기 지원이 요구되는 App
» OS 하위 호환성 유지가 요구되는 App
추가적인 특징
• Web UI로 구현 ( Hybrid Application )
• 안드로이드 버전별 앱이 존재함
• 전문적인 검증조직을 갖추기가 어렵다.
2015년 24,000 unique Android Devices
3. 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
4. TestExplorer 개요
100% 완전 자동화된 GUI 테스팅 기술 (100% Automated GUI Testing)
소스로부터 어플리케이션의 생성 ( BUILD ), Target Device로의 다운로딩 ( Downloading), Target
Device에서의 실행 (RUN), GUI 탐색 (Explore), GUI Tree 생성 (Generate GUI Tree), Test Script 생
성( Generate Test Script ), Test Script 실행, 시험 결과 Report 의 완전 자동화된 GUI 테스팅 기술.
사용자
APP BUILD Download Run GUI Explore
GUI Tree
Test Script
Run Test Script
* GUI Tree : GUI를 구성하는 화면과 Event를 Tree 모델로 형상화 한것
6. 특징 1. 100% GUI 자동 시험 도구
♣ GUI 시험 전과정의 자동화 구현
- 단한번의 클릭으로 GUI 시험이 가능.
Download APK Automatic
GUI Testing
Test Report
▶ 향후 스케쥴러로 등록 -> 예정된 시간에 자동실행 기능 지원 예정
시험에 필요한 노력을 최소화!
시험에 요구되는 노력, 시험도구에 대한 지식, 시험환경구축,…
T E S T E X P L O R E R
7. 7
특징 2. Test Script 자동 생성
♣ Test Script를 자동생성함으로서 Test Script에 대한 부담이 없다.
- 생성된 Test Script는 Regression Test 용도로 사용 가능
- 자동생성이 가능함으로 GUI 변경시에도 사용자가 가지는 부담은 없다.
APK 실행 및 분석 GUI Tree 자동 생성 Test Script 자동 생성
Test Script 생성(수정)업무로부터의 해방
잦은 UI 변경, 다양한 단말기 해상도 등 Test Script 수정에 대한 부담감
T E S T E X P L O R E R
8. 특징 3. 성능 개선 정보 제공
♣ 시험중 취합한 다양한 정보를 제공.
- 안드로이드 시스템이 제공하는 CPU Performance, Process, Memory Status 정보
- 성능을 판별할수 있는 이벤트별 응답시간 측정.
- Code Coverage Report ( 소스제공시 가능 )
- 안드로이드 System & App Log
Memory information
CPU & Process
Response Time (10ms)
시험 완료 후 결과 정보의 부족
재연과정은 기본, 가능한 많은 정보가 필요, 성능측정 정보 요구
T E S T E X P L O R E R
9. 특징 4. Smart Monkey Test
안드로이드 Monkey의 부족한 기능
재연경로의 추출, 시험결과 정보 부족, 수작업 실행과정, 단순 랜덤 시험만 가능
현실적이지 않은 에러 발견, 한번 실행후 리부팅필요
T E S T E X P L O R E R
♣ 상세한 재연 경로 제공 ( Regression 시험 가능)
♣ 간편 실행 ( 자동 APK Download & 실행)
♣ 자동 재실행 가능 ( 전체 탐색할때까지, 리부팅 X )
♣ 시험중 다양한 정보 Profiling ( Log, System, Memory )
♣ 특정 이벤트 조합 기능 제공 ( ex : ID/PWD )
♣ 스케쥴러 자동 실행 기능
♣ Source Coverage Report 제공
10. 특징 5. 개발도구와 연동
♣ Junit 호환의 Test Script 제공
1. Test Explorer : Junit와 호환 Test Script Export
2. Android Studio(통합개발환경) Import
3. 실시간 디버깅( Runtime Debugging) : breakpoint, 변수 및 레지스터 보기
Test Script
개발자 통합개발환경(IDE)와의 연동
통합개발환경(Eclipse, Android Studio)에서 재연 및 실시간 Debug 가능
T E S T E X P L O R E R
11. 개발과정의 시험 적용사례 [ Tomdroid ] - 1
< : Google play > < : Web Site >
기능 : 서버로 저장, Desktop용 Tomboy와 동기화가 가능한 노트 프로그램
특징 : 오픈소스로 운영
12. 개발과정의 시험 적용사례 [ 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 현 최종정식버전
13. 개발과정의 시험 적용사례 [ 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년동안 찾아낸 버그
14. 개발과정의 시험 적용사례 [ Tomdroid ] - 4
TestExplorer의 자동 시험 결과 - 4개의 Crash 발견.
LONG_CLICK LIST_ITEM_SELECT LIST_ITEM_SELECT LIST_ITEM_SELECT
03-07 15:17:49.951 E/AndroidRuntime(21818): FATAL EXCEPTION: main
03-07 15:17:49.951 E/AndroidRuntime(21818): Process: org.tomdroid, PID:
21818
03-07 15:17:49.951 E/AndroidRuntime(21818):
java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String org.tomdroid.Note.getGuid()' on a null object reference
03-07 15:18:54.031 E/AndroidRuntime(21889): FATAL EXCEPTION: main
03-07 15:18:54.031 E/AndroidRuntime(21889): Process: org.tomdroid, PID:
21889
03-07 15:18:54.031 E/AndroidRuntime(21889):
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean
java.io.File.isFile()' on a null object reference
Crash가 발생한 재연경로과 해당 부분 로그 #1
TEx-CRASH #1 TEx-CRASH #2
15. 개발과정의 시험 적용사례 [ Tomdroid ] - 5
02-01 16:14:56.554 E/AndroidRuntime(23911): FATAL EXCEPTION: main
02-01 16:14:56.554 E/AndroidRuntime(23911): java.lang.RuntimeException:
Unable to destroy activity {org.tomdroid/org.tomdroid.ui.EditNote}:
java.lang.NullPointerException
02-01 16:14:56.554 E/AndroidRuntime(23911): at
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:365
0)
02-02 15:26:19.613 E/AndroidRuntime(26506): FATAL EXCEPTION: main
02-02 15:26:19.613 E/AndroidRuntime(26506):
java.lang.NullPointerException
02-02 15:26:19.613 E/AndroidRuntime(26506): at
org.tomdroid.ui.EditNote.updateNoteContent(EditNote.java:470)
02-02 15:26:19.613 E/AndroidRuntime(26506): at
org.tomdroid.ui.EditNote.saveNote(EditNote.java:478)
Crash가 발생한 재연경로과 해당 부분 로그 #2
TEx-CRASH #3 TEx-CRASH #4
CLICK CLICK CLICK CLICK
16. 개발과정의 시험 적용사례 [ 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의 가치를 증명할 수 있었던 사례로 판단됨
17. TestExplorer 이점
기능 이점
100% 자동화
사용방법이 간단하여 시험에 부담감 감소
실행에 대한 부담 감소 ( CI 또는 서버 스케줄러를 통한 자동실행)
주기적 반복시험으로 Side Effect의 조기 발견 가능
Test Script 자동 생성
시험에 대한 리소스 최소화
UI 변경 및 다양한 단말기 대상 시험 시에도 Test Script 작성 불필요
Profiling 정보
에러 발견 당시의 Profiling 정보는 개발자의 Debug에 도움이 됨
성능(응답시간)측정 정보는 성능판단에 객관적 기준점 제공 가능
개발자에게 성능개선에 필요한 자료를 제공
개발도구와 연동
(Junit 호환 TestScript)
개발자가 직접 Debuging할 수 있는 환경을 제공.
19. 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