Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Firebase Test Lab으로 Android 테스트 시작하기

Firebase Test Lab을 사용하면 다양한 기기와 구성에서 앱을 테스트할 수 있습니다. 이 시작하기 가이드는 따라야 할 구현 경로와 Test Lab의 Android 제품에 대한 소개를 제공합니다.

Test Lab 할당량 및 요금제에 대한 자세한 내용은 사용량, 할당량 및 요금 을 참조하십시오.

주요 컨셉

선택한 기기 및 구성에 대해 테스트 또는 테스트 사례 세트를 실행하면 Test Lab에서 앱에 대한 테스트를 일괄적으로 실행한 다음 결과를 테스트 매트릭스 로 표시합니다.

장치 × 테스트 실행 = 테스트 매트릭스

장치
휴대전화, 태블릿 또는 웨어러블 기기와 같이 테스트를 실행하는 물리적 또는 가상 기기(Android만 해당)입니다. 테스트 매트릭스의 장치는 장치 모델, OS 버전, 화면 방향 및 로케일(지역 및 언어 설정이라고도 함)으로 식별됩니다.
테스트, 테스트 실행
장치에서 실행할 테스트(또는 테스트 케이스 세트). 장치당 하나의 테스트를 실행하거나 선택적으로 테스트를 분할하고 다른 장치에서 테스트 케이스를 실행할 수 있습니다.
테스트 매트릭스
테스트 실행에 대한 상태 및 테스트 결과를 포함합니다. 행렬의 테스트 실행이 실패하면 전체 행렬이 실패합니다.

1단계 : Test Lab에 업로드할 테스트 준비

사용 가능한 테스트 유형

Test Lab으로 다음 테스트를 실행할 수 있습니다. 모든 테스트 유형은 물리적 장치에서 45분, 가상 장치에서 60분으로 제한됩니다. 잡히지 않은 예외는 테스트 실패를 일으킵니다.

  • 계측 테스트 또는 계측 단위 테스트 : Espresso 또는 UI Automator 프레임워크를 사용하여 작성한 테스트입니다. 이 테스트를 사용하면 AndroidJUnitRunnerAPI 를 사용하여 올바른 기능을 확인하기 위해 앱 상태에 대한 명시적 어설션을 만들 수 있습니다.

  • Robo 테스트 : 앱의 UI를 분석한 다음 코드를 작성할 필요 없이 사용자 활동을 시뮬레이션하여 체계적으로 탐색하는 자동화된 테스트입니다. 자세한 내용은 Robo 테스트 정보를 참조하세요.

  • 게임 루프 테스트 : "데모 모드"를 사용하여 게임 앱에서 플레이어 동작을 시뮬레이션하는 테스트입니다. 이는 게임이 사용자에게 잘 맞는지 확인하는 빠르고 확장 가능한 방법입니다. 게임 루프 테스트를 실행하도록 선택하면 다음을 수행할 수 있습니다.

    • 게임 엔진 고유의 테스트 작성

    • 다른 UI 또는 테스트 프레임워크에 대해 동일한 코드를 작성하지 마십시오.

    • 선택적으로 단일 테스트 실행에서 실행할 여러 루프를 생성합니다(자세한 내용은 게임 루프 테스트 정보 참조). 또한 레이블을 사용하여 루프를 구성하여 루프를 추적하고 특정 루프를 다시 실행할 수 있습니다.

    Test Lab으로 이 테스트를 실행하는 방법에 대한 지침 은 게임 루프 테스트 실행을 참조하세요.

테스트를 실행하는 도구

다음 도구를 선택하여 테스트를 실행할 수 있습니다.

  • 처음 사용자에게 권장 : Firebase 콘솔을 사용하면 웹 브라우저에서 앱을 업로드하고 테스트를 시작할 수 있습니다. 이 도구를 사용하여 테스트를 실행하는 방법에 대한 지침 은 Firebase 콘솔로 테스트를 참조하세요.

  • Android Studio 통합 을 사용하면 개발 환경을 벗어나지 않고 앱을 테스트할 수 있습니다. 이 도구를 사용하여 테스트를 실행하는 방법에 대한 지침은 Android Studio로 테스트를 참조하세요.

  • gcloud 명령줄 인터페이스를 사용하면 명령줄에서 대화식으로 테스트를 실행할 수 있으며 자동화된 빌드 및 테스트 프로세스의 일부로 스크립팅에 적합합니다. 이 도구를 사용하여 테스트를 실행하는 방법에 대한 안내 는 gcloud CLI로 테스트를 참조하세요.

알파 또는 베타 채널을 사용하여 앱의 APK 파일을 Play 스토어에 업로드하고 게시할 때 Test Lab에서 무료로 앱을 테스트할 수도 있습니다. 자세한 내용은 사전 출시 보고서를 사용하여 문제 식별Robo 테스트 를 참조하세요.

2단계 : 테스트 장치 선택

Test Lab은 Google 데이터 센터에 설치되어 실행되는 Android 기기의 여러 제조사 및 모델에 대한 테스트를 지원합니다. Test Lab의 기기에서 테스트하면 Android Studio에서 에뮬레이터를 사용하여 앱을 테스트할 때 발생하지 않을 수 있는 문제를 감지하는 데 도움이 됩니다. 자세한 내용은 사용 가능한 장치를 참조하십시오.

3단계 : 테스트 결과 검토

테스트를 시작하는 방법에 관계없이 모든 테스트 결과는 Test Lab에서 관리하며 온라인으로 볼 수 있습니다.

테스트 결과 요약 은 자동으로 저장되며 Firebase 콘솔에서 볼 수 있습니다. 여기에는 테스트 사례별 비디오, 스크린샷, 통과, 실패 또는 비정상적인 결과를 얻은 테스트 수 등을 포함하여 테스트와 가장 관련성이 높은 데이터가 포함됩니다.

원시 테스트 결과 에는 테스트 로그와 앱 실패 세부정보가 포함되며 Google Cloud 버킷에 자동으로 저장됩니다. 버킷을 지정하면 스토리지 비용을 부담해야 합니다. 버킷을 지정하지 않으면 Test Lab에서 무료로 버킷을 생성합니다.

자세한 내용은 Firebase Test Lab 결과 분석을 참조하세요.

Android Studio 에서 테스트를 시작하면 개발 환경 내부에서 테스트 결과를 검토할 수도 있습니다.

기기 정리

Google은 앱 데이터의 보안을 매우 중요하게 생각합니다. 새로운 테스트를 실행할 준비가 되었는지 확인하기 위해 모든 테스트 실행 후에 앱 데이터를 제거하고 물리적 장치에 대한 시스템 설정을 재설정하는 업계 표준 모범 사례를 따릅니다. 사용자 지정 복구 이미지로 플래시할 수 있는 장치의 경우 테스트 실행 사이에 이러한 장치를 플래시하여 한 단계 더 나아갑니다.

Test Lab에서 사용하는 가상 장치의 경우 장치 인스턴스는 사용 후 삭제되므로 각 테스트 실행에서 새 가상 장치 인스턴스가 사용됩니다.


Test Lab 및 Google Play 서비스

Test Lab 기기는 일반적으로 최신 버전의 Google Play 서비스 SDK에서 실행되지만 일부 기기는 새 버전의 SDK가 출시된 후 업데이트하는 데 며칠이 소요될 수 있습니다. 일부 장치에서는 호환성 문제가 발생할 수 있습니다.

테스트 장치가 개인 백엔드 서버에 액세스하도록 허용

일부 모바일 앱은 테스트 중에 올바르게 작동하기 위해 비공개 백엔드 서비스와 통신해야 합니다. 백엔드 서버가 방화벽 규칙으로 보호되는 경우 아래 IP 주소 블록 을 사용하여 방화벽을 통해 경로를 열어 Test Lab의 물리적 및 가상 장치에 대한 액세스를 허용할 수 있습니다.

모바일 광고

Test Lab은 앱 테스트를 자동화하는 확장 가능한 인프라를 제공하며 불행히도 이 기능은 사기성 광고 수익을 생성하도록 설계된 악성 앱에서 오용될 수 있습니다.

이 문제를 완화하려면:

Test Lab 기기에서 사용하는 IP 주소

Test Lab 장치에서 생성된 모든 네트워크 트래픽은 다음 IP 주소 블록 에서 발생합니다. gcloud CLI에서 gcloud beta firebase test ip-blocks list 명령어 를 사용하여 이 목록에 액세스할 수도 있습니다. 목록은 평균 1년에 한 번 업데이트됩니다.

플랫폼 및 장치 유형 CIDR IP 주소 블록
Android 및 iOS 물리적 기기

70.32.128.0/19(2022년 2월 2일에 추가됨)

108.177.6.0/23

108.177.18.192/26(2022년 2월 2일에 추가됨)

108.177.29.64/27(2022년 2월 2일 확장)

108.177.31.160/27(2022년 2월 2일 추가됨)

199.36.156.8/29(2022년 2월 2일 추가됨)

199.36.156.16/28(2022년 2월 2일 추가)

209.85.131.0/27(2022년 2월 2일에 추가됨)

2001:4860:1008::/48(2022년 2월 2일 추가됨)

2001:4860:1018::/48(2022년 2월 2일 추가됨)

2001:4860:1019::/48(2022년 2월 2일 추가)

2001:4860:1020::/48(2022년 2월 2일 추가)

2001:4860:1022::/48(2022년 2월 2일 추가)

안드로이드 가상 기기

34.68.194.64/29(2019년 11월 11일에 추가됨)

34.69.234.64/29(2019년 11월 11일에 추가됨)

34.73.34.72/29(2019년 11월 11일에 추가됨)

34.73.178.72/29(2019년 11월 11일에 추가됨)

34.74.10.72/29(2022년 2월 2일에 추가됨)

34.136.2.136/29(2022년 2월 2일에 추가됨)

34.136.50.136/29(2022년 2월 2일 추가됨)

34.145.234.144/29(2022년 2월 2일에 추가됨)

35.192.160.56/29

35.196.166.80/29

35.196.169.240/29

35.203.128.0/28

35.234.176.160/28

35.243.2.0/27(2019년 7월에 추가됨)

35.245.243.240/29(2022년 2월 2일 추가됨)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

더 이상 사용되지 않는 장치 IP 블록

74.125.122.32/29(2022년 2월 2일 삭제)

216.239.44.24/29(2022년 2월 2일 삭제)