앱 테스트 에이전트는 Firebase의 Gemini를 기반으로 하는 테스트 사례 생성, 관리, 실행 에이전트입니다. 자연어로 테스트 목표를 정의하면 에이전트가 AI를 사용하여 앱을 이해하고 탐색하고, 사용자 상호작용을 시뮬레이션하고, 자세한 테스트 결과를 제공합니다.
앱 테스트 에이전트가 사용자의 데이터를 사용하는 방식
앱 테스트 에이전트는 Firebase의 Gemini에서 제공하며 동일한 약관이 적용됩니다. Firebase의 Gemini에서 사용자 데이터를 사용하는 방식에 대한 자세한 내용은 Firebase의 Gemini에서 사용자 데이터를 사용하는 방식을 참조하세요.
시작하기 전에
아직 등록하지 않았다면 Firebase에 앱을 등록합니다.
다른 Firebase 제품을 사용하지 않는 경우 프로젝트를 만들고 앱을 등록하기만 하면 됩니다. 앱에 SDK를 추가할 필요는 없습니다. 그러나 이후에 추가 제품을 사용할 경우에는 Firebase Console을 사용하여 Firebase 추가의 모든 단계를 완료해야 합니다.
테스트 사례 만들기
앱 테스트 에이전트는 AI 가이드 테스트를 실행하기 위해 자연어 테스트 사례를 사용하여 앱에 대한 테스트를 실행합니다.
각 테스트 사례는 순차적으로 실행되는 단계로 분류됩니다. 단계를 사용하면 테스트 사례를 각각 어설션이 있는 단계로 분할할 수 있습니다. 에이전트는 한 단계에서 여러 작업을 수행할 수 있습니다.
테스트 사례를 만드는 방법은 YAML 파일을 사용하거나 Firebase Console을 사용하는 두 가지가 있습니다. YAML 파일을 사용하면 일반적으로 버전이 지정된 소스 코드 저장소에서 테스트 사례를 직접 관리할 수 있습니다. 또는 Firebase Console에서 앱 배포 데이터와 함께 테스트 사례를 원격으로 저장할 수 있습니다.
YAML 파일 사용
다음 예시는 테스트 사례 두 개를 정의하는 YAML 파일을 보여줍니다.
tests:
- displayName: Login as guest
id: login-as-guest
steps:
- goal: Log in as a guest
finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
prerequisiteTestCaseId: login-as-guest
steps:
- goal: Open the article on "Bob Dylan"
hint: Use the search function to find it
finalScreenAssertion: >-
The article is opened and the title "Bob Dylan" is visible.
- goal: Find Bob Dylan's birthday in the article
hint: >-
Look for the "Born" section in the infobox on the right side of the page.
finalScreenAssertion: >-
The text "May 24, 1941" is visible on the screen.
단일 파일에서 테스트 그룹을 구성하고 여러 파일에서 이러한 테스트 모음을 분리할 수 있습니다. 테스트에 ID를 추가한 다음 prerequisiteTestCaseId를 사용하여 해당 ID를 참조하여 기본 요건 테스트 사례를 추가할 수 있습니다.
App Distribution 콘솔 사용
또는 Firebase Console에서 테스트 사례를 만들고 관리할 수 있습니다. 테스트 사례를 만들려면 Firebase Console의 App Distribution 페이지를 열고 다음 단계를 따르세요.
- 테스트 사례 탭에서 새 테스트 사례를 클릭합니다. 자체 테스트 사례를 만들지 않으려면 제공된 테스트 사례 예시를 수정하거나 사용할 수 있습니다.
- 테스트 사례 추가 대화상자에서 테스트 사례에 이름을 지정합니다. 테스트를 식별하는 데 사용되지만 에이전트는 무시합니다.
- (선택사항) 기본 테스트 전에 실행할 설정 단계가 포함된 기본 요건 테스트 사례를 선택합니다. 기본 요건 테스트가 실패하면 전체 테스트가 실패로 표시됩니다. 기본 요건 테스트와 기본 테스트의 단계와 결과가 테스트 결과에 함께 표시됩니다.
- 다른 단계 추가 버튼을 클릭하여 테스트를 여러 단계로 나누는 것이 좋습니다.
- 각 단계에 앱 테스트 에이전트가 해당 단계에서 수행해야 하는 작업을 설명하는 목표를 지정합니다.
- (선택사항) 힌트를 추가하여 앱 테스트 에이전트가 해당 단계에서 앱을 이해하고 탐색하는 데 도움이 되는 추가 정보를 제공합니다.
- 앱 테스트 에이전트가 단계가 완료된 시점을 판단하는 데 도움이 되는 최종 화면 어설션을 추가합니다. 이 어설션은 화면에 표시되는 내용만 참조해야 합니다.
- 테스트 맞춤설정이 완료되면 저장을 클릭합니다.
테스트 사례 예시
다음은 앱 테스트 에이전트를 사용하여 테스트 사례를 만드는 방법의 예입니다.
테스트 제목 |
홈페이지 로드 |
목표 |
홈페이지 로드 |
힌트 |
온보딩 화면을 지나 탐색합니다. 팝업을 닫습니다. 로그인하지 마세요. |
최종 화면 어설션 |
기본 앱 홈페이지가 화면에 표시되고 모든 이미지가 로드되었으며 오류가 표시되지 않습니다. |
테스트 실행
테스트를 실행하는 방법은 테스트 사례를 만들고 관리하는 방법에 따라 다릅니다. YAML 파일을 사용하여 테스트 사례를 정의하는 경우 Firebase CLI를 사용하여 이러한 테스트를 실행합니다. 앱 배포 콘솔에서 테스트 사례를 만드는 경우 콘솔에서 또는 앱 배포 CLI 도구 중 하나를 통해 테스트 사례를 실행합니다.
YAML 파일 사용
YAML 파일에 정의된 테스트 사례는 Firebase CLI를 사용하여 실행할 수 있습니다.
- 최신 버전의 Firebase CLI를 설치하거나 업데이트합니다. 사용 중인 OS에 해당하는 CLI의 독립 실행형 바이너리를 다운로드하는 것이 좋습니다.
- 로그인하여 프로젝트에 액세스할 수 있는지 테스트하세요. CI 환경에서 Firebase CLI를 사용하는 경우 서비스 계정 또는 login:ci를 사용하여 인증할 수도 있습니다.
apptesting:execute명령어를 실행합니다. 예를 들면 다음과 같습니다.firebase apptesting:execute \ --app=1:1234567890:android:0a1b2c3d4e5f67890 \ --test-dir=./mytests \ ./app/build/outputs/apk/debug/app-debug.apk
| apptesting:execute [options] [/path/to/app/binary] | |
|---|---|
--app
|
필수 항목: 앱의 Firebase 앱 ID입니다. Firebase Console의 일반 설정 페이지에서 앱 ID를 찾을 수 있습니다.
|
--test-dir
|
테스트 사례 YAML 파일이 포함된 디렉터리의 경로입니다. 이 명령어는 이 디렉터리 아래에서 재귀적으로 검색하므로 파일을 선택적으로 하위 디렉터리로 구성할 수 있습니다. 설정하지 않으면 기본적으로 './tests'가 사용됩니다. |
--test-devices 또는 --test-devices-file
|
빌드를 앱 테스트 에이전트 기능에 배포할 테스트 기기입니다. 테스트 기기를 세미콜론으로 구분된 테스트 기기 목록으로 지정할 수 있습니다. --test-devices
"model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
또는 세미콜론으로 구분된 테스트 기기 목록이 포함된 일반 텍스트 파일의 경로를 지정할 수 있습니다. --test-devices-file
"/path/to/test-devices.txt" gcloud CLI를 사용하여 사용 가능한 기기 모델을 조회할 수 있습니다. |
--test-non-blocking
|
설정된 경우 명령어는 테스트를 시작한 후 완료될 때까지 기다리지 않고 즉시 반환됩니다. |
--test-file-pattern
|
정규 표현식 패턴입니다. 이 패턴과 일치하는 파일에 포함된 테스트만 실행됩니다. |
--test-name-pattern
|
정규 표현식 패턴입니다. 이 패턴과 일치하는 표시 이름이 있는 테스트만 실행됩니다. |
/path/to/app/binary
|
선택사항: 앱의 바이너리 경로입니다. 생략하면 에이전트가 지정된 앱에 대해 App Distribution에 업로드된 마지막 버전을 사용합니다. |
App Distribution 콘솔 사용
앱 배포에 저장된 테스트 사례를 실행하려면 Firebase Console, Firebase CLI 또는 App Distribution의 Gradle 또는 fastlane 플러그인을 사용하면 됩니다.
YAML 파일로 테스트 사례 가져오기 및 내보내기
YAML 파일에서 테스트 사례를 가져오는 것은 Firebase Console 외부에서 테스트 사례를 관리하려는 경우에 유용합니다. 테스트 사례를 내보내 프로젝트 간에 이동하는 데도 유용합니다. LLM을 사용하여 기존 테스트 사례를 개선하거나 새 테스트 사례를 만들 수 있습니다. Firebase Console의 테스트 사례 페이지에서 테스트 사례를 가져오고 내보내거나 Firebase CLI를 사용하여 프로그래매틱 방식으로 가져오고 내보낼 수 있습니다. YAML 테스트 사례의 예는 YAML 테스트 사례 만들기를 참고하세요.
테스트 결과 보기
출시 버전의 앱 테스트 에이전트 탭에 있는 출시 페이지에서 테스트 결과를 볼 수 있습니다. 세부정보 보기 버튼을 클릭하면 테스트 결과 대화상자가 열리고 문제, 앱 스크린샷, 테스트 중에 Gemini가 수행한 작업이 표시됩니다.
테스트에 재생된 작업이 포함된 경우 원래 AI 가이드 테스트 실행을 보거나 캐시를 지울 수 있습니다.
테스트 결과에 대해 자세히 알아보려면 다음 표를 참고하세요.
| 아이콘 | 이름 | 설명 |
|---|---|---|
| spark | AI 작업 | 앱 테스트 에이전트가 Gemini를 사용하여 작업을 수행하거나 단계를 종료하기로 결정했음을 나타냅니다. |
| replay | 재실행된 작업 | 앱 테스트 에이전트가 이전 테스트의 성공적인 실행에서 작업을 재생했음을 나타냅니다. |
| spark | AI 어설션 | 앱 테스트 에이전트가 동일한 테스트의 이전에 성공한 실행에서 작업을 재생한 후 Gemini를 사용하여 최종 화면 어설션을 검증했음을 나타냅니다. |
테스트 결과 디버깅
테스트 결과가 예상과 다른 경우 테스트 결과 페이지의 세부정보 보기 아래에 있는 에이전트 보기 표시 전환 버튼을 사용하여 테스트를 디버깅할 수 있습니다. 에이전트 보기에는 앱 테스트 에이전트가 앱의 접근성 정보를 사용할 때 감지할 수 있었던 화면 요소가 표시됩니다. 에이전트가 확인한 내용을 자세히 살펴보려면 작업 더보기 메뉴에서 해당 정보를 다운로드하면 됩니다.
테스트 결과 페이지의 아티팩트 보기 버튼을 사용하여 테스트 결과의 모든 동영상, 로그, 다른 Cloud 아티팩트를 볼 수도 있습니다.
알려진 문제 및 제한사항
앱 테스트 에이전트 미리보기에는 몇 가지 알려진 제한사항이 있습니다.
- 앱 테스트 에이전트는 생성형 AI를 사용하여 앱을 테스트하므로 동일한 안내를 따르더라도 다른 작업을 수행하는 경우가 있습니다.
- 앱 테스트 에이전트는 탭, 텍스트 입력, 위/아래/왼쪽/오른쪽 스와이프, 길게 누르기, 드래그 앤 드롭, 뒤로, 대기 작업만 지원합니다.
- 앱 테스트 에이전트는 실행하는 데 여러 작업이 필요한 단일 단계만 포함된 테스트를 실행하는 데 문제가 있습니다. 복잡한 작업을 여러 개의 짧은 단계로 나누면 성능이 향상됩니다.
- 앱 테스트 에이전트는 화면 밖의 다른 요소를 노출하도록 스크롤하지 않는 경우가 있습니다. 스크롤 가능 여부를 시각적으로 표시하지 않는 경우 이러한 현상이 더 자주 발생합니다. 이 문제를 해결하려면 '힌트' 필드를 사용하여 스크롤을 제안할 수 있습니다.
- 앱 테스트 에이전트는 계산하는 데 문제가 있을 수 있습니다(예: 특정 횟수만큼 작업 수행).
FLAG_SECURE가 사용 설정된 경우 앱 테스트 에이전트가 앱을 탐색할 수 없습니다. 앱의 스크린샷 대신 빈 화면만 표시됩니다.
테스트 할당량
프리뷰 버전에서는 할당량 한도 내에서 AI 가이드 테스트가 무료로 제공됩니다. 기본 할당량 한도는 Firebase 프로젝트당 월 200회 테스트입니다.
여러 기기에서 여러 테스트 사례를 실행하거나 동일한 테스트 사례를 실행하는 경우 이는 여러 테스트로 집계됩니다. 예를 들어 기기 2대에서 테스트 사례 2개를 실행하면 총 4회의 테스트로 집계됩니다.
할당량을 기본 한도보다 늘리려면 사용 사례를 포함하여 Firebase 지원팀에 문의하세요.