AWS Device Farm FAQ

실제 모바일 디바이스에서 테스트

AWS Device Farm은 개발자가 AWS 클라우드에서 실제 Android 및 iOS 디바이스를 테스트하고 상호 작용함으로써 애플리케이션 품질, 출시에 걸리는 시간 및 고객 만족도를 개선할 수 있도록 해줍니다. 개발자는 앱을 업로드하고, 스크립트를 테스트하고, 수백 개의 실제 디바이스에서 자동화된 테스트를 병렬로 실행하고, 몇 분 만에 결과, 스크린샷, 동영상 및 성능 데이터를 얻을 수 있습니다. 또한, 웹 브라우저에서 디바이스를 쓸어넘기고, 동작하고, 상호 작용하는 방법으로 고객 문제를 디버깅하고 재현할 수 있습니다.

AWS Device Farm은 모바일 앱을 구축, 테스트 및 지원하는 개발자, QA 팀 및 고객 지원 담당자가 앱 품질을 향상할 수 있도록 설계되었습니다. 디바이스 모델의 수, 펌웨어 및 OS 버전의 변형, 이동통신사업자 및 제조업체에 따른 사용자 지정, 원격 서비스 및 기타 앱에 대한 의존성 등으로 인해 애플리케이션 품질은 점점 더 중요해지고 또한 복잡해지고 있습니다. AWS Device Farm은 여러 디바이스에서 테스트를 실행하고, 개발자, QA 및 지원 전문가에게 고객 문제 재현, 새로운 기능의 예비 테스트 및 수동 테스트 계획 실행과 같은 수동 작업 및 자동화된 테스트를 수행할 수 있는 기능을 제공함으로써 개발 프로세스를 가속화합니다. 또한, 내부 디바이스 랩, 랩 관리자 및 자동화 인프라 개발이 필요 없어 상당한 비용을 절감할 수 있습니다.

AWS Device Farm에서는 네이티브와 하이브리드 Android, iOS 및 웹 앱을 지원하고, PhoneGap, Titanium, Xamarin, Unity 및 기타 프레임워크로 개발된 앱을 비롯한 교차 플랫폼 앱을 지원합니다.

AWS Device Farm 테스트는 실제 디바이스에서 실행됩니다. OEM 및 이동통신사업자의 디바이스가 사용됩니다.

테스트 및 원격 액세스 세션 설정

시작 안내서를 참조하시기 바랍니다.

AWS Device Farm은 Internet Explorer 9 이상과 Chrome, Firefox 및 Safari 최신 버전을 지원합니다.

웹 애플리케이션은 Android의 Chrome과 iOS의 Safari에서 테스트됩니다.

AWS Device Farm은 최대 4GB의 파일을 지원합니다.

내장된 테스트를 사용하기 위해 앱을 변경하거나 소스 코드를 제공할 필요가 없습니다. Android 앱은 있는 그대로 제출하면 됩니다. iOS 앱은 시뮬레이터 대신 "iOS 디바이스"를 대상으로 구축되어야 합니다.

앱 및 테스트 패키지는 30일 후에 자동으로 제거됩니다. 로그, 비디오 녹화 자료 및 기타 아티팩트는 400일 동안 저장됩니다. 또한, 언제든 AWS Device Farm 콘솔이나 API를 통해 파일과 결과를 삭제할 수 있습니다.

테스트 실행이 완료되면, 각 디바이스에 대해 앱 제거 등의 일련의 정리 작업을 수행합니다. 앱이 제거되었는지 확인할 수 없거나, 다른 정리 단계가 잘 수행되었는지 확인할 수 없는 경우, 디바이스를 제거하게 되며, 해당 디바이스는 더 이상 사용할 수 없게 됩니다.

계속적으로 정리 단계가 추가되고 있고 정리 프로세스가 개선되고 있긴 하지만, 일부의 경우, 특히 앱 사용 외에 다른 목적으로 디바이스 시스템을 사용하는 경우 세션 간에 데이터가 유지될 수 있습니다. 이러한 이유로, 또 AWS Device Farm이 비디오를 캡처하고 사용자가 각 디바이스를 사용하는 동안 발생하는 작업을 기록하기 때문에, 자동화된 테스트 및 원격 액세스 세션 동안에는 계정 정보(예: Google 계정, Apple ID), 개인 정보 및 다른 보안상 중요한 세부 정보를 제공하거나 입력하지 않는 것이 좋습니다.

iOS의 경우 AWS Device Farm에서 포함된 프로비저닝 프로파일을 와일드카드 프로파일로 대체한 후 앱을 다시 서명합니다. 개발자가 이를 제공하는 경우, AWS Device Farm에서 설치 전에 보조 데이터를 애플리케이션 패키지에 추가하여 보조 데이터가 앱의 샌드박스에 포함되도록 합니다. iOS 앱을 다시 서명하면 특정 자격이 삭제됩니다. 앱 그룹, 관련 도메인, 게임 센터, 헬스킷, 홈킷, 무선 액세서리 구성, 앱내 구매, 앱간 오디오, Apple Pay, 푸시 알림, VPN 구성 및 제어가 삭제 대상에 포함됩니다.

Android의 경우 AWS Device Farm에서 앱을 다시 서명합니다. 이로 인해 Google Maps, Android API 등 앱 서명에 종속된 기능이 손상될 수 있습니다. 또한, DexGuard와 같은 제품에 적용된 저작권 침해 방지 및 변조 방지에 대한 탐지가 트리거될 수 있습니다. 내장 테스트의 경우, 스크린샷을 캡처 및 저장하는 데 필요한 권한을 포함하기 위해 AWS에서 매니페스트를 수정할 수도 있습니다.

디바이스 선택

AWS Device Farm에서는 다양한 Android, iOS 및 Fire OS 디바이스를 보유하고 있으며 디바이스 종류는 계속 늘어나고 있습니다. 제조업체에서 디바이스를 출시하는 대로 인기 있는 새로운 디바이스를 추가합니다. 또한, 새로운 OS 버전이 출시되면 새로운 디바이스를 추가합니다. 사용 가능한 디바이스 목록을 참조하시기 바랍니다.

현재 AWS에서는 인도의 국제 디바이스를 보유하고 있습니다. AWS에서는 시장 데이터와 고객 피드백에 따라 이를 계속 업데이트하고 있습니다. 목록에 없는 디바이스를 사용하고자 하는 경우, AWS에 문의해 주시기 바랍니다.

자동화된 테스트의 경우, 디바이스는 디바이스 풀이라고 부르는 모음에서 선택하게 됩니다. 일부 큐레이션된 디바이스 풀이 자동으로 제공되지만 자체 풀도 구성할 수 있습니다. 테스트는 지정된 풀에 있는 디바이스 중 애플리케이션 및 테스트와 호환되는 모든 디바이스에서 실행됩니다. 원격 액세스의 경우, 제조사, 모델, 이동통신사업자 변형 및 운영 시스템 버전에 따라 원하는 디바이스를 선택합니다. 그런 다음 선택적으로 앱과 기타 데이터를 업로드하고 다른 디바이스 설정을 구성할 수 있습니다. 그러면 Device Farm에서는 사용 가능한 디바이스 중 요청과 일치하는 디바이스를 찾아, 사용자의 브라우저에 디바이스의 화면을 표시합니다. 사용자는 디바이스와 상호 작용하고 스크린샷과 동영상을 캡처할 수 있습니다.

예. 테스트 디바이스에는 디바이스 제조업체 또는 이동통신사업자가 사전에 설치한 몇 가지 앱이 있습니다.

예. 모든 디바이스에는 WiFi로 인터넷에 접속할 수 있는 기능이 있습니다. 사내 시스템을 사용하는 경우(회사 방화벽 내에 있는) IP 주소 54.244.50.32에서 54.244.50.63까지 허용할 수 있습니다. 모든 디바이스 트래픽은 해당 IP를 사용하게 됩니다.

실제 이동 통신망 연결을 테스트할 수는 없지만, 네트워크 셰이핑 기능을 사용해 연결 유형과 조건을 시뮬레이션할 수는 있습니다. 실행 예약 시, "3G" 또는 "Lossy LTE"와 같이 큐레이션된 네트워크 프로파일을 선택하거나, 처리량, 지터, 손실과 같은 자체적인 제어 파라미터를 생성할 수 있습니다. 디바이스로부터 수신되는 모든 WiFi 트래픽은 선택한 프로파일에 따라 테스트 기간 동안 셰이프되고 조작됩니다. 또한, 테스트 스크립트의 네트워크 파라미터를 변경하여 동적 환경을 시뮬레이션할 수 있습니다.

아니요. 디바이스는 이동 통신망과 연결되어 있지 않으므로 전화를 걸거나 SMS 메시지를 보낼 수 없습니다.

예. 디바이스 전면 및 후면 카메라 모두 사용할 수 있습니다. 디바이스가 마운트된 방식으로 인해 이미지와 비디오가 어둡고 희미할 수도 있습니다.

앱 테스트

내장된 호환성 테스트 도구를 사용하면 앱에 Fuzz를 설치, 제거, 시작 및 실행할 수 있습니다.

Fuzz는 앱이 시작된 직후에 UI에 fuzz 테스트를 수행합니다. Fuzz는 앱에 무작위 사용자 입력(터치, 쓸어넘기기, 키보드 입력)을 빠른 속도로 스트리밍합니다. 이벤트 수, 이벤트와 이벤트 사이의 시간, 무작위로 이벤트 순서를 정하기 위한 시드를 구성할 수 있습니다. 실행하는 테스트 전체에 같은 시드를 사용하면 모든 테스트에서 같은 순서로 이벤트가 수행됩니다.

AWS Device Farm은 Android 및 iOS 플랫폼용 네이티브, 하이브리드 및 웹 앱에 대한 테스트를 지원합니다. 기본적으로 지원되는 프레임워크는 Appium Java JUnit, Appium Java TestNG, Appium Python, Appium Ruby, Appium NodeJS, Instrumentation(JUnit, Espresso 및 대부분의 계측 기반 테스트 포함)과 XCTest(XCUI 및 KIF 포함)입니다. 지원되는 프레임워크의 전체 목록과 자세한 내용은 설명서를 참조하세요.

Appium Java JUnit, Appium Java TestNG 또는 Appium Python으로 작성된 테스트를 실행할 수 있습니다.

AWS에서는 지원할 프레임워크를 항상 평가하고 있습니다. AWS에 문의해 주십시오.

지원되는 자동화 프레임워크를 사용하는 경우, 사용자가 모든 것을 제어하고 스크린샷을 찍을 시점을 결정할 수 있습니다. 이러한 스크린샷은 보고서에 자동으로 포함됩니다.

예. Google Play 서비스는 지원하는 디바이스에 설치되어 있으며, 새로운 버전이 출시되면 업데이트됩니다.

아니요. 디바이스에는 활성 Google 계정이 없습니다.

AWS Device Farm에서는 Espresso 및 Robotium과 같은 기록 및 재생 스크립트 도구가 있는 프레임워크를 지원합니다.

아니요. AWS Device Farm에서 프로비저닝 프로파일을 자동으로 교체하고 앱을 다시 서명하여 테스트 디바이스에 교체된 프로파일이 배포되도록 합니다.

아니요. 하지만 로그를 다운로드하고 로컬에서 스택 추적을 심볼리케이트할 수 있습니다.

예. ProGuard를 사용한 경우에는 가능합니다. 하지만 저작권 침해 방지 조치에 DexGuard를 사용한 경우, AWS Device Farm에서는 앱을 다시 서명하고 이에 대한 테스트를 실행할 수 없습니다.

디바이스에서 인터넷에 액세스할 수 있으나 광고가 표시되는지 여부는 보장할 수 없습니다. AWS Device Farm에서 테스트할 빌드에는 광고를 삭제할 것을 권장합니다.

예. Calabash, Appium 또는 UI Automation과 같은 클라이언트-서버 프레임워크를 사용하고 있다면 인터넷에 접속하여 호스트로부터 제한된 셸 명령을 실행할 수 있습니다.

최대 4GB까지 .zip 아카이브를 제공할 수 있습니다. 데이터는 Android의 경우 외부 메모리의 루트로, 그리고 iOS의 경우 앱의 샌드박스로 추출됩니다. Android 확장 파일(OBB)의 경우, OS 버전에 따라 적절한 장소에 파일이 자동으로 저장됩니다. 자세한 내용은 개발자 안내서를 참조하십시오.

예. 여러 앱을 선택하고 앱이 설치될 순서를 선택할 수 있습니다. 이러한 종속 앱은 테스트가 시작되기 전에 설치됩니다.

예. 업그레이드 흐름을 테스트하도록 새로운 버전이 설치 및 테스트되기 전에 앱의 이전 버전을 업로드하고 설치할 수 있습니다.

예. 디바이스의 GPS를 재정의하는 데 사용할 경도와 위도를 제공할 수 있습니다.

예. 디바이스의 기본 로캘 설정을 재정의하도록 로캘(예: "en_US")을 제공할 수 있습니다.

테스트는 즉시 실행 대기열에 추가되고 일반적으로 몇 분 내에 시작됩니다. 하나 이상의 디바이스를 사용할 수 없는 경우, 해당 디바이스에 대한 테스트 실행은 디바이스를 사용할 수 있을 때까지 대기열에 유지됩니다. 다른 디바이스에서 실행되는 테스트는 계속 진행됩니다.

테스트 최대 허용 시간은 150분입니다. 

예. Jenkins 연속 통합 환경을 위한 플러그인과 Android Studio와 호환되는 Gradle 플러그인이 있습니다. 또한, API를 통한 테스트 설정 및 테스트 결과 다운로드를 비롯해 모든 콘솔 기능에 대한 프로그래밍 방식을 지원합니다. 자세한 내용은 AWS Device Farm API Reference를 참조하십시오. API와 더불어 AWS SDK에서도 AWS Device Farm을 액세스할 수 있습니다.

결과 검토

AWS Device Farm 테스트 보고서는 통과/실패 정보, 충돌 보고, 테스트 로그, 디바이스 로그, 스크린샷, 동영상 및 성능 데이터를 다룹니다. 보고서에는 오류 발생 수와 같은 상세한 디바이스별 데이터 및 상위 수준의 결과가 모두 포함됩니다. 원격 액세스 결과에는 세션 동영상과 로그가 포함됩니다.

AWS Device Farm 보고서에는 모든 LogCat(Android) 및 디바이스 로그(iOS)와 더불어 디바이스 호스트와 지정된 테스트 프레임워크의 로그가 포함됩니다.

데이터를 LogCat(Android) 또는 디바이스 로그(iOS)에 작성하는 경우, 해당 로그 항목이 보고서에 포함됩니다. 디바이스의 인터넷 연결 또는 디바이스 호스트의 인터넷 연결을 사용하여 테스트 스크립트를 통해 파일을 전송하더라도 AWS Device Farm은 비표준 로그 또는 다른 아티팩트를 수집하지 않습니다.

요금

요금은 선택한 디바이스당 테스트 시간에 따라 결정되는 디바이스 분을 기준으로 합니다 AWS Device Farm에서는 1000 디바이스 분의 무료 평가판이 제공됩니다.* 그 후에는 고객에게 디바이스 분당 0.17 USD의 요금이 청구됩니다. 테스트 요구가 증가하면, 무제한 테스트 플랜을 선택하여 월별 디바이스당 250 USD 요금으로 시간에 제한 없이 테스트를 수행할 수 있습니다.

처음 1000 디바이스 분은 무료로 제공됩니다. 무료 평가판은 일회성이며 갱신되지 않습니다. 할당된 무료 시간이 모두 소진되면 이후 사용에 대해서는 디바이스 분당 0.17 USD의 표준 요금이 청구됩니다.

디바이스 분은 결제 단위입니다. 디바이스 분은 테스트 실행을 위해 선택한 모든 디바이스에 앱 및 테스트를 설치, 실행 및 제거하는 데 걸리는 시간(분)입니다. 단위 요금은 디바이스, 테스트 또는 애플리케이션 유형과 관계없이 일정합니다. 디바이스 분은 디바이스 또는 시스템 오류 없이 완료된 테스트에 한해서만 청구됩니다. 이와 비슷하게 원격 액세스 세션에서 디바이스 분은 사양에 맞춰 디바이스를 준비할 때부터 디바이스에 저장한 앱과 데이터를 완전히 제거할 때까지 걸리는 시간입니다.

상한선이나 사전 약정 없이 비즈니스 요구에 따라 사용량을 동적으로 확장 또는 축소할 수 있습니다.

처음 1000 디바이스 분은 무료로 제공됩니다.* 무료 평가판은 일회성이며 갱신되지 않습니다. 할당된 무료 시간이 모두 소진되면 이후 사용에 대해서는 디바이스 분당 0.17 USD의 표준 요금이 청구됩니다.

무제한 플랜을 사용하면 월별 최소 250 USD로 테스트와 원격 액세스를 제한 없이 수행할 수 있습니다. 무제한 요금은 각 사용 유형(예: 자동화 테스트 또는 원격 액세스)과 각 디바이스 제품군(예: Android 또는 iOS)별로 구매하는 디바이스 슬롯의 수를 기준으로 하며, 요금은 월별 슬롯당 250 USD입니다. 디바이스 슬롯은 동시성에 해당합니다.

예를 들어 10개의 자동화된 테스트 Android 디바이스 슬롯을 구매하고 100개의 Android 디바이스 테스트를 예약하는 경우, Device Farm에서는 선택한 디바이스에 대한 모든 테스트가 완료될 때까지 한 번에 디바이스 10개씩 테스트를 수행합니다. 슬롯을 많이 구매할수록 결과를 더 빨리 얻을 수 있습니다. 한 달에 실행하는 테스트 및 원격 액세스 세션의 수와 관계없이, 월별 디바이스 슬롯당 250 USD의 일정한 요금이 부과됩니다. 언제든지 1개 이상의 디바이스 슬롯 구독을 취소할 수 있으며, 다음 갱신일(첫 번째 활성 디바이스 슬롯을 구매한 날짜)부터 구독 취소가 적용됩니다. AWS Device Farm 콘솔, AWS 명령줄 인터페이스(AWS CLI) 또는 AWS Device Farm API에서 슬롯을 구입할 수 있습니다. 자세한 내용은 설명서를 참조하십시오.

언제든 디바이스 슬롯을 추가할 수 있으며, 추가하는 즉시 사용할 수 있습니다. 또한 언제든지 1개 이상의 디바이스 슬롯 구독을 취소할 수 있으며, 다음 갱신일(첫 번째 활성 디바이스 슬롯을 구매한 날짜)부터 구독 취소가 적용됩니다.

예. 테스트 실행을 생성할 때 무제한 디바이스 슬롯을 사용할지 아니면 디바이스 분당 요금제를 사용할지 선택할 수 있습니다. 분당 요금제에서는 동시성이 제한되지 않으므로, 디바이스 슬롯을 사용하는 것보다 테스트를 더 빠르게 실행할 수 있는 유연성이 주어집니다.

개인 디바이스는 고객 계정 전용인 휴대전화 또는 태블릿의 물리적 인스턴스입니다. 프라이빗 디바이스는 사용자 지정 정적 구성을 사용하고 사용자 지정 OS 이미지를 실행할 수 있습니다. 각 디바이스는 자동으로 배포되고 고객의 구독이 종료되면 제거됩니다.

고객 계정의 각 프라이빗 디바이스는 프라이빗 디바이스 구독으로 간주됩니다. 월 구독 요금은 디바이스 비용에 따라 다양하며 200 USD/월부터 시작됩니다. 최소 구독 기간이 종료된 후 언제든 구독을 취소할 수 있습니다. 자세한 내용은 AWS에 문의하십시오.

예. 테스트 실행이나 원격 액세스 세션을 위한 디바이스를 선택할 때, 프라이빗 디바이스뿐 아니라 퍼블릭 디바이스도 보일 것입니다. 두 가지 디바이스로 모두 구성된 디바이스 풀을 생성할 수도 있습니다. 프라이빗 디바이스에 대한 자세한 내용은 AWS에 문의하십시오.

데스크톱 브라우저에서 테스트

Selenium은 웹 브라우저 상호 작용을 자동화하는 오픈 소스 프레임워크입니다. 여기에서 Selenium에 대해 자세히 알아볼 수 있습니다.

Device Farm을 사용하면 AWS 클라우드에서 호스팅되는 다른 데스크톱 브라우저 및 브라우저 버전에서 Selenium 테스트를 실행할 수 있습니다. Device Farm은 Selenium 테스트의 클라이언트 측 실행 모델을 따릅니다. 즉, 테스트는 자체 로컬 시스템에서 실행되지만 Selenium API를 통해 AWS Device Farm에서 호스팅된 브라우저와 상호 작용합니다.

시작하려면 여기에서 시작 안내서를 참조하시기 바랍니다.

모든 브라우저는 Microsoft Windows Server에서 실행되는 EC2 Windows 인스턴스로 호스팅됩니다.

지원되는 데스크톱 브라우저 및 브라우저 버전 목록은 여기에서 볼 수 있습니다.

Device Farm이 지원하는 필요한 Selenium 기능 목록은 여기에서 볼 수 있습니다.

Device Farm은 테스트 실패 문제 해결에 도움을 주기 위해 콘솔 로그, 웹 드라이버 로그, 작업 로그 및 전체 테스트의 비디오 녹화 자료를 제공합니다.

예. Device Farm은 Appium을 사용하여 실제 모바일 디바이스에서 웹 앱 테스트를 지원합니다. 자세한 내용은 Appium 웹 테스트의 개발자 안내서를 참조하십시오. 실제 모바일 디바이스에서 테스트 진행 시 Device Farm은 서버 측 실행 모델을 따르므로 테스트를 서비스에 업로드해야 합니다.

이 기능의 모든 제한은 여기에서 확인할 수 있습니다.

요금은 선택한 브라우저 인스턴스당 테스트 시간에 따라 결정되는 인스턴스 시간(분)을 기준으로 합니다. 브라우저 인스턴스 분당 0.005 USD가 청구됩니다.

인스턴스 분은 Device Farm의 데스크톱 브라우저 테스트에 대한 청구 단위입니다. 인스턴스 분은 테스트 실행을 위해 선택한 모든 브라우저 인스턴스에서 테스트를 실행하는 데 걸리는 시간(분)입니다. 단위 요금 0.005 USD는 선택한 브라우저 또는 브라우저 버전에 관계없이 일정합니다. 브라우저를 호스팅하는 EC2 인스턴스를 시작, 초기화 또는 해제하는 데 걸리는 시간에는 요금을 부과하지 않습니다.