Firebase Test Lab 이란
앱을 등록하면 구글의 AI가 알아서 버튼들을 눌러보며 크래시(앱꺼짐)이 발생하는지 테스트해주는 로봇(?)
설정하는 방법
1. 구글 콘솔에 프로젝트 생성

프로젝트 이름은 직관적이게 만듭니다. 어떤 프로젝트인지 구분 잘하게 지으면됨.
2. Firebase 콘솔에서 프로젝트 생성

Firebase콘솔 사이트에 들어가서 [새 Firebase 프로젝트 만들기]를 클릭 후 밑에 Google console 프로젝트에서 가져오기로 위에서 생성한 프로젝트를 선택해 계속 생성을 진행합니다.
3. 프로젝트에 Firebase 관련 연결

아마 저 만들기 들어가면 패키지명을 입력하라고 할텐데
안드로이드는 프로젝트파일명/android/app/build.gradle.kts 에
android {
namespace = "com.xxxxxx.패키지명"
.....
}
이런식으로 이름이 있을겁니다 저 namespace 옆에 ""안에 있는 것을 입력합니다
그리고 build.gradle.kts에 뭔가 추가하라고 2개 있을텐데
android/build.gradle.kts 에는 아래 코드를 추가하고
plugins {
// Google 서비스 플러그인 버전을 정의합니다.
id("com.google.gms.google-services") version "4.4.4" apply false
}
android/app/build.gradle.kts 에는
plugins {
id("com.android.application")
id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
id("com.google.gms.google-services") #추가해야될거
}
dependencies {
// Firebase BoM (버전 관리자) 추가
implementation(platform("com.google.firebase:firebase-bom:33.1.2"))
// 사용하고 싶은 서비스 추가 (예: 분석기)
implementation("com.google.firebase:firebase-analytics")
}
이렇게 2개를 추가해주면 됩니다.
추가하게되면 google-service.json 을 설치받게 될텐데 이걸
"프로젝트명/android/app/google-serivce.json" 으로 저장해둡니다
이건 나중에 깃허브 설정에서 다시 봐야합니다.
4. 구글 콘솔 서비스 계정 만들기

여기에 권한으로 기본 > 편집자 가 있을겁니다 추가해주고 구성원은 패스하고 [완료]를 누릅니다
만들어진 애를 클릭하면 이 키 탭을 선택할 수 있는 화면이 나옵니다.

[새 키 만들기] 를 눌러주고

JSON으로 만들어줍니다. 이걸 깃허브 Secrets에 등록해야 합니다. 이때 같이 등록할 3가지가 있습니다.
5. 깃허브 설정
우선 깃허브에 프로젝트를 올려야합니다.
Repository 생성 설명은 건너뛰고
Repository폴더에 .github/workflows/robo_test.yml 을 생성해 줍니다. 그리고 아래 코드를 넣어줍니다.
name: Automated Robo QA
on:
workflow_dispatch: # 수동 실행 버튼 활성화 (무료 횟수 관리용) [cite: 2026-01-24]
# push:
# branches: [ main, develop ] # 자동 실행을 막기 위해 주석 처리함 [cite: 2026-01-22]
# [추가] 같은 테스트가 여러 번 눌려도 하나만 실행함 (자원 낭비 방지)
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
run-robo-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 1. Flutter 환경 설정
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
# [추가되는 부분] 금고에서 설정을 꺼내 파일을 만듭니다.
- name: Create google-services.json
run: echo '${{ secrets.GOOGLE_SERVICES_JSON }}' > android/app/google-services.json
# 2. 앱 빌드 (테스트용 APK 생성)
- name: Build Debug APK
run: |
flutter pub get
flutter build apk --debug
# 3. 구글 클라우드 인증 (금고에서 열쇠 꺼내기)
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
# 4. Firebase Test Lab 로봇 출동
- name: Run Robo Test
run: |
gcloud firebase test android run \
--type robo \
--app build/app/outputs/flutter-apk/app-debug.apk \
--device model=oriole,version=33,locale=ko,orientation=portrait \
--timeout 1m \
--project ${{ secrets.이름맞추기 }}
이걸 그대로 복붙해서 넣습니다.
그리고 프로젝트들도 기존 프로젝트폴더에서 다 꺼내서 Repository 최상위 폴더로 넣습니다.
그럼 main이 이렇게 보일겁니다.

이러면 폴더 설정은 끝입니다.
그 후 깃허브 홈페이지에 프로젝트>설정에 가면 이 페이지가 나옵니다.
왼쪽 탭에 Secrets and variables > Actions에서 New repository secret으로 3가지를 추가합니다.
1. 구글 콘솔에서 받은 json 내용 복붙
name: GCP_SA_KEY
Secret: json내용 열어서 그대로 복붙
2. 위에서 firebase연결하면서 저장한 google-service.json 내용 복붙
Name: GOOGLE_SERVICES_JSON
Secret: google-service.json 내용 그대로 복붙
3. 서비스계정 키에서 확인
위에서 만든 서비스계정에 보면 @다음에 서비스이름-123456 이런식으로 이름이 있었습니다.
Name: 위 코드 가장 마지막줄에 secrets.이름맞추기 << 이름맞추기를 수정해줍니다.
Secret: 서비스이름-123456 으로 넣어줍니다. 아마 숫자다음에 .iam... 뭐시기들은 무시하면됩니다.
추가하면 이렇게 3가지가 추가됩니다.

6. Action 에서 Automated Robo QA 돌리기
위에 설정들을 모두 제대로 했다면 [Run workflow] 라는 버튼이 있을텐데 run이라고 보이는 버튼을 클릭하고 좀 오래 기다리면

프로젝트와 설정들이 제대로 되었는지 확인하며 성공합니다.
7. Firebase Test Lab에서 자동으로 테스트한 결과 확인
Test Lab 탭을 찾아 들어가면 AI가 어떤 테스트를 수행했는지 확인할 수 있습니다.
Main에 Brunch될때마다 이게 수행되는걸로 아는데 이거 많이 돌리면 돈나가서 제가 robo_test.yml에 자동수행 막아놓고 수동으로 돌리게 해놨으니 테스트할려면 깃허브 Action가서 알아서 눌러주면됩니다.

히힛 자동으로 돌아간다~~~
근데 눌러볼거 많은데 다 하질않네... 생각보다 테스트 퀄은 떨어지는구나...