Firebase Test Lab Robo 테스트

Robo 테스트는 Firebase Test Lab에 통합된 테스트 도구입니다. Robo 테스트는 앱의 UI 구조를 분석하고 사용자 행동을 자동으로 시뮬레이션하며 체계적으로 탐색합니다. Robo 테스트는 UI/Application Exerciser Monkey 테스트와 달리 특정 기기 구성에서 동일한 설정으로 앱을 테스트할 때 항상 동일한 사용자 행동을 동일한 순서로 시뮬레이션합니다. 따라서 Robo 테스트를 사용하면 UI/Application Exerciser Monkey 테스트를 사용할 때는 불가능한 방식으로 버그 수정을 검증하고 회귀 테스트를 수행할 수 있습니다.

Robo 테스트에서는 로그 파일을 수집하고, 주석이 들어간 스크린샷을 저장하고, 이러한 스크린샷으로 동영상을 제작하여 테스트 중에 수행된 사용자 작업 시뮬레이션을 보여 줍니다. 이러한 로그, 스크린샷, 동영상으로 앱 오류의 근본 원인을 파악하고 앱 UI의 문제점을 찾아낼 수 있습니다.

Robo 테스트 크롤링 통계

Robo 테스트 결과 해석을 돕기 위해 Robo가 각 테스트 크롤링 진행 시 통계를 기록합니다. Test Lab이 테스트 결과 페이지의 Robo 탭 상단에 통계를 표시합니다.

  • 작업: Robo 스크립트 작업, 몽키 작업, Robo 지시어를 비롯한 크롤링 중 수행된 총 작업 수입니다.
  • 활동: 크롤링 중 다룬 각 활동의 수입니다.
  • 화면: 크롤링 중 방문한 각 화면의 수입니다.

Test Lab은 또한 통계를 사용하여 크롤링 그래프 형식으로 Robo 크롤링을 시각적으로 나타냅니다. 그래프에서 화면은 노드, 작업은 에지입니다. 화면 간 에지를 따라 Robo가 크롤링을 통해 앱을 어떻게 순회했는지 볼 수 있습니다.

Robo 테스트 제한시간

앱 UI의 복잡도에 따라 Robo 테스트에서 전체 UI 상호작용 세트를 완료하는 데 5분 이상이 걸릴 수 있습니다. 대부분의 앱에서는 테스트 제한 시간을 120초(2분) 이상으로, 비교적 복잡한 앱에서는 300초(5분)로 설정하는 것이 좋습니다. 제한 시간의 기본값은 Android 스튜디오 및 Google Developer Console에서 테스트를 실행할 때는 300초(5분), gcloud 명령줄에서 테스트를 실행할 때는 1,500초(25분)입니다.

앱 시작 제한 시간 오류

앱이 시작하는 데 오래 걸릴 경우 Robo가 오류 메시지를 표시하고 앱을 크롤링하지 못할 수도 있습니다. 이는 시작 시간이 매우 오래 걸리는 경우에만 발생하며, 앱이 더욱 빨리 시작되도록 수정해야만 해결할 수 있습니다.

Robo 스크립트를 사용한 추가 제어

테스트를 더 세밀하게 제어해야 할 때가 있습니다. 예를 들어 일반적인 사용 경로를 테스트하거나 사용자 이름 및 비밀번호 같은 특정 UI 입력을 제공해야 할 수 있습니다. 이때 Robo 스크립트가 도움이 될 수 있습니다.

Robo 스크립트를 사용하면 앱에서 직접 워크플로를 따르는 모습을 기록한 후 기록을 Firebase 콘솔에 업로드해 Robo 테스트에서 실행시킬 수 있습니다. 스크립트가 연결된 Robo 테스트를 실행하면 Robo가 사전 스크립트 처리된 작업을 먼저 수행한 후 평소와 같이 앱을 탐색합니다.

Android 스튜디오에서 Firebase 도구를 통해 Robo 스크립트 사용을 시작해 보세요.

  1. Android 스튜디오를 엽니다.
  2. 기본 메뉴에서 도구 > Firebase를 선택합니다.
  3. Test Lab을 선택하고 Robo 스크립트 기록 및 Robo 테스트에 적용하기를 클릭합니다.
  4. 도구의 나머지 단계에 따라 Robo 스크립트를 기록합니다.
  5. Robo 스크립트를 Test Lab에 업로드하고 테스트를 시작합니다.

Robo 스크립트 오류

어느 시점에서든 Robo 스크립트가 실패할 경우 Test Lab이 스크립트의 모든 추후 단계를 취소하고 일반 Robo 크롤링을 재개합니다. Robo 스크립트가 실패하는 대부분의 이유는 Test Lab이 화면에서 필요한 요소를 찾을 수 없기 때문입니다. 실패를 막으려면 앱 탐색이 예측 가능한지, 화면이 무작위로 표시되지 않는지 확인하세요.

Robo 테스트 및 Android 외 UI 위젯

Robo 테스트에서는 Android API를 사용해 Android UI 위젯의 작업을 직접 수행합니다. 덕분에 테스트에서 UI를 자동으로 탐색하는 데 도움이 되지만 이로 인해 화면의 Android UI 계층구조를 추출해야지만 테스트를 실행할 수 있습니다.

앱 화면에서 Android UI 위젯을 사용하지 않는 경우에는 Robo 테스트에서 Monkey 작업을 사용해 해당 화면을 테스트합니다. 보다 체계적인 Robo 작업과 달리 Monkey 작업은 단순히 기기 화면에서 거의 아무 위치에 탭 이벤트를 시뮬레이션합니다.

Android UI 위젯을 사용하지 않는 화면을 더 나은 방식으로 테스트하려면 Firebase Test Lab 게임 루프 테스트를 통해 Monkey 작업에 사용되는 임의의 탭을 스크립트가 작성된 탭 및 상호작용 집합으로 교체하면 됩니다.

Google Play 통합

알파 또는 베타 채널을 사용하여 앱의 APK 파일을 업로드하고 게시할 때 Google Play Console에서 Robo 테스트를 사용할 수 있습니다. Robo 테스트는 세계 여러 지역에 있는 널리 사용되는 실제 기기 세트에서 실행되므로 다양한 폼 팩터와 하드웨어 구성을 포괄하여 테스트할 수 있습니다. 자세한 내용은 사전 출시 보고서로 문제점 파악을 참조하세요.

테스트 계정 로그인 및 사전 정의된 텍스트 입력

Robo 테스트는 테스트 계정 로그인을 지원하며, 앱의 입력란에 사전 정의된 텍스트를 입력할 수도 있습니다. 맞춤 로그인 및 사전 정의된 기타 텍스트 입력을 위해 Robo 테스트가 앱의 EditText 입력란에 텍스트를 입력할 수 있습니다. 이때 문자열마다 Android 리소스 이름을 사용하여 EditText 입력란을 식별해야 합니다. 자세한 내용은 리소스 액세스를 참조하세요.

로그인

Robo 테스트에는 로그인을 지원하는 두 가지 방법이 있습니다.

  • 맞춤 로그인: 테스트 계정 인증 정보를 제공하는 경우 이 정보뿐 아니라 인증 정보를 입력할 위치를 Robo 테스트에 알려야 합니다.
  • 자동 로그인: 앱에 Google 계정으로 인증하는 로그인 화면이 있으며 맞춤 로그인을 위한 테스트 계정 인증 정보를 제공하지 않은 경우 Robo 테스트에서 Google 테스트 계정을 사용합니다.

맞춤 로그인을 위한 테스트 계정 인증 정보를 제공하는 방법은 다음과 같습니다.

  1. 측정기준 선택 페이지에서 고급 옵션 표시를 선택합니다.
  2. 테스트 계정 사용자 인증 정보(선택사항)에 사용자 이름 및 비밀번호의 리소스 이름과 테스트 계정의 사용자 이름 및 비밀번호를 입력합니다.

사전 정의된 텍스트 입력

앱에서 사용하는 다른 텍스트 입력란에 맞춤 입력 텍스트를 제공할 수 있습니다. 기타 입력란에 텍스트 입력을 제공하는 방법은 다음과 같습니다.

  1. 측정기준 선택 페이지에서 고급 옵션 표시를 선택합니다.
  2. 추가 필드(선택사항)에 하나 이상의 리소스 이름 및 해당 텍스트 입력란에 입력할 문자열을 입력합니다.

사전 정의된 텍스트 입력 오류

Robo가 제공된 정규 표현식과 일치하는 Android 리소스 이름을 사용하여 EditText 필드를 검색합니다. Robo가 일치하는 필드를 찾지 못할 경우 텍스트를 입력하지 않고 대신 평소와 같이 크롤링을 계속합니다.

테스트를 위해 앱에서 지원하는 딥 링크를 최대 3개까지 제공할 수 있습니다. 딥 링크는 Android ACTION_VIEW 인텐트로 앱에 실행됩니다. 그러므로 각 링크는 앱의 인텐트 필터와 일치해야 합니다.

딥 링크가 1개 이상 제공되면 ACTION_MAIN 인텐트를 사용하여 앱이 정상적으로 실행되고 지정한 제한 시간까지 크롤링됩니다. 기본 크롤링 후 각 딥 링크는 추가로 30초 동안 크롤링됩니다.

Robo가 딥 링크와 일치하는 활동을 찾지 못할 경우 Test Lab이 링크를 무시합니다. 보통 딥 링크 문제는 제공된 딥 링크 및 앱의 해당 정의 간의 차이로 인해 발생합니다. 제공된 URL 및 앱 모두에서 오타 또는 기타 불일치가 있는지 확인하세요.

앱 라이선스 지원

Test Lab은 Google Play에서 제공하는 앱 라이선스 서비스를 사용하는 앱을 지원합니다. Test Lab으로 앱을 테스트할 때 라이선스를 정상적으로 확인하려면 Play 스토어의 프로덕션 채널에 앱을 게시해야 합니다. Test Lab으로 알파 또는 베타 채널의 앱을 테스트하려면 Test Lab에 앱을 업로드하기 전에 라이선스 확인을 삭제하세요.

알려진 문제

Robo 테스트에는 현재 다음과 같은 제한사항이 있습니다.

  • UI 프레임워크 지원. Robo 테스트는 Android UI 프레임워크의 UI 요소(ViewViewGroup 객체 포함, WebView 객체 제외)를 사용하는 앱하고만 호환됩니다. Unity 게임 엔진을 사용하는 앱을 포함하여 다른 UI 프레임워크를 사용하는 앱을 Robo 테스트로 시험하면 첫 화면을 벗어나지 못하고 테스트가 종료될 수 있습니다.
  • 로그인 보안문자. Robo 테스트는 로그인을 위해 사용자 인증 정보 입력 이외에 보안문자 입력 등의 추가적인 사용자 작업이 필요한 로그인 화면을 우회하지 못합니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.