기기, 테스트 완료 기기 정보가 포함됨 ⚫ 이전 APK의 호환성 테스트 결과와 비교한 데이타 성능 ⚫ 평균 CPU : 특정 기기 모델에서 앱의 평균 CPU 사용량 백분율 ⚫ 전송된 평균 네트워크 : 네트워크 연결을 통해 앱에서 전송한 초당 평균 바이트수 ⚫ 수신된 평균 네트워크 : 네트워크 연결을 통해 앱으로 전송된 초당 평균 바이트수 ⚫ 평균 메모리 : 선택한 기간에 앱에서 사용한 평균 메모리 보안 ⚫ 보안 취약성 관련 문제의 이름과 설명이 포함됨
웹브라우져에서 직접 실기간으로 연결해 상호작용 할 수 있음 애피움(Appium), 칼라바쉬(Calabash), 로보티움(Robotium), 에스프레소(Espresso) 등 많은 테스트 프레임워크 상에서 앱을 테스트 할 수 있음 앱 테스트 중 액션 발생 후 동작을 기다리는 시간이나 전체 테스트 시간의 타임아웃을 설정할 수 있음 테스트 스크립트가 불필요한 퍼즈(Built-in) 테스트를 이용할 수 있음. 앱에 여러 사용자의 입력, 터치, 쓸어넘기기, 키보드 입력을 통해 UI테스트를 실시함. 이벤트수, 간격, 랜덤 이벤트에 사용되는 난수를 설정할 수 있음 테스트 도중에 발생하는 테스트 로그, 앱 로드, 테스트 스크린 샷, 리소스 사용량을 확인할 수 있음
등)와 에뮬레이터 상에서 테스트 할 수 있음 GUI 기반 테스트 시나리오 생성으로 일반 사용자도 쉽게 테스트 작성이 가능함 해상도와 OS별로 다수 단말에서 동시 테스트 가능 자주 사용되는 화면은 모듈 그룹화해 재사용할 수 있게 함으로서 시나리오 생성 시간을 최소화할 수 있음 결과 로그의 DB 저장과 실시간 분석 리포트를 제공함 웹(Web) 방식을 채택해 원격 모니터링할 수 있고, 시나리오 작성도 여러명이서 할 수 있음 테스트 도중에 발생하는 테스트 로그, 앱 로드, 테스트 스크린 샷, 리소스 사용량을 확인할 수 있음
병렬로 테스트 할 수 있음 ⚫ 테스트 중에 발생하는 테스트 로그/앱 로그/ 테스트 전후 스크린샷/테스트 동영상/리소스 사용량(CPU, Memory 등)을 확인할 수 있음 차이점 ⚫ 테스트 코드 작성 필수 유무, 테스트 코드 모듈화(재사용 용도) 지원 여부 ⚫ 스크린 샷들 사이 발생한 UI 이벤트 맵 지원 여부
개발을 시작 2016년 7월부터 헤드스핀(HeadSpin)사와 개인 개발자(OpenSTF라는 이름으로 2015년말부터 시작했음)의 지원을 받고 있음 깃허브(github.com/openstf/stf)에서 2018년 10월 기준 7900개가 넘는 스타와 1200회가 넘는 포크 기록 2018년 8월 9일 3.4.0 버전이 릴리즈 웹브라우저에서 디바이스팜에 접근해 디바이스를 원격으로 제어할 수 있는 서비스 구현을 위한 백엔드, 프론트엔드, 디바이스용 오픈소스 소프트웨어를 제공 사용자 인증, 디바이스 정보 제공, API 사용을 위한 토큰(Token) 관리, ADB키(ADB Keys) 관리 기능 제공
Simulator, real iPnones, real iPads Native app : debug version .app(simulator), correctly-signed .ipa(real devices) Mobile web : mobile safari automation을 통해 지원, real device 경우, ios-webkit-remote- debugger 필요 Hybrid 지원 : 지원, real device의 경우 ios-webkit-remote-debugger 필요 한 세션 상에서의 여러 앱 동시 테스트 : 미지원 여러 디바이스 동시 테스트 : 미지원 벤더 제공 혹은 third-party 앱에 대한 자동화 : 시뮬레이터 상에서 벤더 제공 앱만 가능 iOS 10 이상 Home Screen 자동화 가능 Appium Platform Support - iOS
Android devices Native app : 지원 Mobile web : Selendroid 의 경우 미지원, 나머지 지원. 4.2 와 4.3에서는 공식 Chrome browser, Chromium 만 지원. 4.4 이상에서는 built-in "Browser" app 지원 가능. 테스트 전에 Chrome/Chromium/Browser 가 설치되어 있어야 함 Hybrid 지원 : 지원 한 세션 상에서의 여러 앱 동시 테스트 : 지원 여러 디바이스 동시 테스트 : 지원, 서로 다른 포트 설정으로 가능 벤더 제공 혹은 third-party 앱에 대한 자동화 : Selendroid 의 경우 미지원, 나머지 지원 Appium Platform Support - Android
를 device/emulator에 설치 3. (서버) adb를 사용하여 device/emulator 에 앱 설치/실행 4. (서버) 스크립트 명령어를 uiautomator2(bootstrap.jar) 에 전달 5. (서버) Uiautomator 나 Uiautomator2를 실행시킨다 6. (Bootstrap.jar) 명령어를 안드로이드 버전에 맞게 UIAutomator(2) 혹은 Selendroid 명령어로 바꿔 device/emulator 에서 실행하고 결과를 서버에 전달 7. (서버)는 전달받은 결과를 IDE로 전달 8. (IDE) 전달받은 결과 출력 Android 테스트 라이프 사이클
를 device/emulator에 설치 3. (서버) instruments를 사용하여 device/emulator 에 앱 설치/실행 4. (서버) 스크립트 명령어를 bootstrap.js에 전달 5. (Bootstrap.js) 명령어를 device/emulator 에서 실행하고 결과를 서버에 전달 6. (서버)는 전달받은 결과를 IDE로 전달 7. (IDE) 전달받은 결과 출력 iOS 테스트 라이프 사이클
adb 로 application 설치 6. get screenshot 7. find element 4. dump window 8. Set 동작 8. get Page source 8. get screenshot 5. get source adb로 통신 api 로 통신 도구 – Appium Recorder