이 문서는 Test Lab용 AVD의 이점 및 알려진 제한사항 등을 설명합니다. 또한 개발 수명 주기 전반에서 앱을 테스트하는 방법에 관한 권장사항도 제공합니다.
Test Lab AVD는 Android 스튜디오용 AVD와 비슷하지만 둘 사이에는 몇 가지 차이점이 있습니다. 예를 들어 Test Lab의 AVD는 Wi-Fi 연결이 아닌 에뮬레이션된 데이터 연결을 사용합니다.
.arm
또는 (Arm) 접미사가 있는 Test Lab AVD는 다음과 같은 이점을 제공하는 고급 에뮬레이터입니다.
테스트 실행 시간 단축
일관성을 위해 Android 스튜디오의 AVD에 맞춰진 화면 크기 및 밀도
.arm
또는 (Arm) 접미사가 있는 AVD를 사용하면 다른 유형의 실제 기기에 비해 다음과 같은 장점이 있습니다.
이점 | 설명 | 사용 사례 |
고가용성 | 가상 기기로 테스트하면 더욱 빠르게 테스트를 실행하고 테스트 결과를 확인할 수 있습니다. 가상 기기는 요청에 따라 생성되므로 테스트가 거의 즉시 시작되어 앱을 빠르게 검증할 수 있습니다. | 앱의 소규모 업데이트 또는 회귀 테스트 |
테스트 기간 연장 | 실제 기기 테스트는 기기당 45분으로 제한됩니다. 가상 기기를 사용하면 최장 60분 동안 테스트를 실행할 수 있습니다. | 더 긴 테스트 실행 |
비용 절감 | 가상 기기의 가격은 앱을 테스트하는 데 사용되는 가상 기기마다 시간당 $1입니다. | 지속적 통합 시스템을 사용한 일일 테스트 또는 코드 체크인 전 테스트 자세한 내용은 Test Lab의 사용량 수준, 할당량, 가격 책정을 참조하세요. |
가상 기기로 앱 테스트
가상 기기로 앱을 테스트하는 방법은 실제 기기를 사용할 때와 동일합니다. 테스트 측정기준을 선택하여 테스트 매트릭스를 구성할 때 가상 기기를 선택하기만 하면 됩니다. Test Lab으로 테스트를 실행하는 방법에 대해 자세히 알아보려면 Firebase Test Lab으로 Android 테스트 시작하기를 참조하세요.
지원되는 모델 및 API 보기
Test Lab에서 지원하는 AVD 모델 및 API를 보려면 다음 명령어를 실행합니다.
gcloud firebase test android models list --filter=virtual
앱 테스트를 위한 권장사항
가상 기기는 Test Lab으로 앱을 테스트할 때 선택의 범위를 넓혀 줍니다. 앱 개발 수명 주기 전반에서 이 섹션의 권장사항을 사용하여 앱을 테스트하는 것이 좋습니다.
Android 스튜디오 에뮬레이터 또는 연결된 실제 기기 사용
앱을 개발할 때 Android 스튜디오 에뮬레이터 또는 연결된 실제 기기를 사용하여 각 빌드를 초기 검증합니다. 계측 테스트가 필요한 경우 Android 스튜디오에서 Test Lab이 제공하는 실제 또는 가상 기기를 사용하여 테스트를 실행할 수도 있습니다.
공유 프로젝트 작업 시 각 코드 변경에 CI 시스템 사용
대규모 프로젝트를 진행하거나 GitHub 또는 유사한 서비스를 사용하여 공유되는 프로젝트에 참여하는 경우, 지속적 통합(CI) 시스템을 사용하는 것이 좋습니다.
CI 시스템이 실행될 때마다 또는 각 pull 요청 전에 가상 기기에서 앱을 테스트합니다. CI 시스템에서 Test Lab을 사용하는 방법에 관한 자세한 내용은 지속적 통합 시스템에서 Android용 Test Lab 사용을 참조하세요.
중요한 앱 업데이트 출시 전 Test Lab으로 실제 기기에서 앱 테스트
중요한 UI 및 기능 변경사항이 포함된 앱 업데이트를 출시하기 전에 Test Lab을 사용하여 실제 기기에서 앱을 테스트하는 것이 좋습니다. 이렇게 하면 많이 사용되는 다양한 실제 기기에서 앱의 안정적이고 우수한 성능을 보장하는 데 도움이 됩니다. 또한 실제 기기에서 테스트하면 가상 기기로 시뮬레이션할 수 없는 실제 기기 기능에 의존하는 앱 기능까지 모두 테스트할 수 있습니다. 이러한 기능의 자세한 내용은 알려진 제한사항을 참조하세요.
가상 기기 업데이트
Android팀은 주기적으로 새로운 가상 기기 이미지를 추가하고, 오래된 이미지를 지원 중단하고, 기존 이미지를 업데이트합니다. 사용자 환경을 반영하는 최신 Android 버전을 대상으로 테스트할 수 있도록 가상 기기 이미지에 이러한 업데이트를 적용합니다.
드물지만 이러한 업데이트로 인해 예상치 못하게 테스트가 실패할 수 있습니다. 문제를 야기할 가능성이 있는 것으로 알려진 업데이트가 있는 경우 Test Lab의 출시 노트에서 해당 정보를 확인할 수 있습니다. 권장사항에 따라 가능하면 이러한 변경사항에 강건한 테스트 프레임워크(예: Espresso)를 사용하는 것이 좋습니다. 이 방법을 사용할 수 없는 경우 업데이트 빈도가 낮은 Arm 가상 기기를 타겟팅하는 것이 좋습니다.
알려진 제한사항
실제 기기의 일부 기능은 현재 가상 기기로 시뮬레이션할 수 없거나 몇 가지 제한사항이 적용됩니다. 다음은 현재 가상 기기에서 사용할 수 없거나 특정 제한사항이 적용되는 기능을 요약한 표입니다.
기능 | 세부정보 |
Application Binary Interface(ABI) | 모든 기기가 모든 ABI를 지원하는 것은 아닙니다. Android NDK로 개발하는 경우 타겟팅하는 기기에서 지원하는 ABI용 코드를 생성해야 합니다. 자세한 내용은 Test Lab에서 사용 가능한 기기를 참조하세요.
ABI 관리에 대해 자세히 알아보려면 Android ABI를 참조하세요.
기기에서 지원하는 ABI를 알아보려면 사용 가능한 테스트 기기 확인을 참조하세요.
참고: 테스트 매트릭스의 테스트가 '무효'로 표시된 경우 앱의 네이티브 코드에 기기 ABI에서 지원하지 않는 종속 항목이 있기 때문일 수 있습니다. |
그래픽 성능 | Nexus 및 Pixel 가상 기기는 소프트웨어 그래픽 렌더링을 사용합니다. 그래픽 집약적인 애플리케이션의 경우 성능이 저하됩니다. 앱이 그래픽 집약적인 경우 SmallPhone.arm 및 MediumPhone.arm 모델이나 실제 기기를 대신 사용하세요.
|
화면 녹화 | Nexus 및 Pixel 기기의 화면 녹화는 초당 1프레임입니다. |
그래픽 API | API 수준 29 미만의 기기에서는 OpenGL ES 3.x가 지원되지 않습니다. 최신 기기는 OpenGL/Vulkan API와 100% 호환되지는 않습니다. 그래픽에 약간의 차이가 있을 수 있습니다. |