이 문서는 Test Lab용 AVD의 이점 및 알려진 제한사항 등을 설명합니다. 또한 개발 수명 주기 전반에서 앱을 테스트하는 방법에 관한 권장사항도 제공합니다. Test Lab AVD는 Android 스튜디오용 AVD와 비슷하지만 클라우드 테스트 성능에 최적화되어 있으므로 둘 사이에는 몇 가지 차이점이 있습니다.
.arm 또는 (Arm) 접미사가 있는 Test Lab AVD는 다음과 같은 이점을 제공하는 고급 에뮬레이터입니다.
테스트 실행 시간 단축
일관성을 위해 Android 스튜디오의 AVD에 맞춰진 화면 크기 및 밀도
GPU에서 지원되는 가속화된 그래픽
다음 표에서는 가상 기기를 사용할 때의 이점을 설명합니다.
이점 | 설명 | 사용 사례 |
고가용성 | 가상 기기로 테스트하면 더욱 빠르게 테스트를 실행하고 테스트 결과를 확인할 수 있습니다. 가상 기기는 요청에 ��라 생성되므로 테스트가 거의 즉시 시작되어 앱을 빠르게 검증할 수 있습니다. | 앱의 소규모 업데이트 또는 회귀 테스트 |
테스트 기간 연장 | 가상 기기를 사용하면 최장 60분 동안 테스트를 실행할 수 있습니다. 실제 기기 테스트는 기기당 45분으로 제한됩니다. | 더 긴 테스트 실행 |
비용 절감 | 가상 기기의 가격은 앱을 테스트하는 데 사용되는 가상 기기마다 시간당 $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에서 지원하지 않는 종속 항목이 있기 때문일 수 있습니다. |
그래픽 성능 | Nexus 및 Pixel 가상 기기는 소프트웨어 그래픽 렌더링을 사용합니다. 그래픽을 많이 사용하면 애플리케이션의 성능이 저하될 수 있습니다. 앱이 그래픽 집약적인 경우 SmallPhone.arm, MediumPhone.arm 또는 실제 기기를 대신 사용해 보세요. |
그래픽 API | API 수준 29 미만의 기기에서는 OpenGL ES 3.x가 지원되지 않습니다. 최신 기기는 OpenGL/Vulkan API와 100% 호환되지 않으므로 그래픽에 약간의 차이가 있을 수 있습니다. |
Google Play 스토어 앱 | Google Play 스토어 앱은 Arm 가상 기기에서 지원되지 않습니다. |
증강 현실(AR) 기능 | 가상 기기에서 증강 현실(AR) 기능 테스트는 지원되지 않습니다. |
이전 API 수준 | Test Lab Arm 가상 기기는 26 미만의 API 수준을 지원하지 않습니다. |