자동화, 계륵에 살 붙이기
: Evolution of Android Automation Test
송의초경
N Tech Service/ Contents QA
NTS Contents QA 팀에서 근무하고 있는 송의초경입니다. 오디오 플랫폼에서 주로 QA를 진행했고 네이버 뮤직을 거쳐 현재는 오디오 클립 QA를 담당하고 있습니다. 자동화 거버넌스 TF에서 자동화 라이브러리의 유지 보수도 함께 담당하고 있습니다.
7. 사용자의 테스트 동작 중 화면상의 마우스 동작, 키보드 입력 등을 자동화
수행이 가능한 script 형태로 변환하여 이후 동일한 형태로 Replay
함으로써 Regression Test를 지원하는 테스트 자동화 방식
UI Automation Test란?
8. • 단순하고 반복적인 테스트
• 유지보수 기간 ↑, Test Case ↑
• Side-effect 확인을 위한 회귀 테스트
9. Appium 활용한 자동화 사례
Sikuri를 이용한 자동화 사례
Calabash 적용 자동화 사례
ADB를 활용한 자동화 툴 제작
Webkuli 적용사례
Calabash 활용한 자동화 사례
BDD방식 적용 자동화 사례
Uiautomator Stub 활용한 멀티
디바이스 제어 자동화 사례
14. Robotium UI Automator Espresso Selendroid Calabash Appium
Android Yes Yes Yes Yes Yes Yes
iOS No No No No Yes Yes
Mobile Web Yes
(Android)
Limited to x.y
clicks
No Yes Yes
(Android)
Yes
(Android &
iOS)
Hybrid Limited Limited No Yes No Yes
Language
Scripting
Java Java Java Java, Ruby Ruby Almost Any
Supported
API levels
All 16 => 8, 10, 15-19 10 <= All All
Jail Breaking
Routing
No No No No No No
Community Contributors Google Google Active Pretty quiet Active
33. Sensor
• 기울기 센서를 이용하여 orientation 전환 확인
Audio Focus, Audio Manager
• Audio Focus 선점 및 Audio 재생 확인
Notification listener
• Application Notification 정보 수집
Event Checker
34. • 약 30개 Event
• 약 80개 Log
Event
Call Doze LTE
SMS USB/AC charging WiFi
GPS ScreenON/OFF AirPlane
Bluetooth is Plug Roaming
Battery Save Lock Screen BT Connection
Volume Ringer Mode Locale Change
NFC BT Discover Mode Do Not Distrurb Mode
Picture Data Saver Mode BT Discover
Noisy HeadSet Plug Boot
KeyBoardChange Screen Orientation Audio PlayBack
Dock
Event Checker
40. • Battery 소모량
LCD/OLED & CPU & WiFi & 3G
GPS & Audio
CPU 사용률 (%)
Memory 사용량
PSS & Private Dirty & Shared Dirty
발생 Traffic
TX & RX (Upload & Download)
* 모든 항목을 개별, 혹은 전체로 측정 가능
rMon Mobile Version
Resource Monitoring
41. Android 5.1.1 이후 사용 불가
Resource Monitoring
• 신규 App Launching & 개편
• 유사 서비스와 BMT
42. Resource Monitoring
rMon PC Version
adb shell /data/local/rmon
• ADB를 활용한 Resource 측정 방식
• Android Application의 소모 CPU, Memory, Traffic 측정
• Android 단말기 내부에 rMon 명령어 추가
• ADB > rMon 명령어 호출하여 리소스 데이터 수집
47. Android Automation Test
Maven Repository
Code RepositoryCoding CI 서버
Target DeviceResult Report
• GitLab으로 Automation Test Project 관리
• CI서버 통해 Daily Build 수행
49. 모바일 기기 원격 제어 솔루션
• 화면 제어, 디버깅 등
• Real Time에 가까운 응답속도
• 실제 단말과 동일한 사용감을 제공
nMobile 자동화 연동 시 장점
• 가상 단말 아닌 리얼 디바이스 대상 수행 가능
• 다양한 단말 보유 (버전 별, 제조사 별, 국가 별)
• ADB 연결 가능 / 다양한 API 지원
• 물리적인 연결 없이 접근 가능 / 사용 용이성
nMobile