Firebase Test Lab adalah layanan cloud Google untuk pengujian otomatis aplikasi seluler pada perangkat nyata yang ditempatkan di pusat data Google. Test Lab memungkinkan menjalankan tes instrumental, tes tangkapan layar, dan tes robot pada ratusan konfigurasi perangkat dengan berbagai versi Android dan iOS tanpa perlu memiliki perangkat sendiri. Menurut Firebase Documentation, 2026, pengujian robot Firebase secara otomatis melewati semua layar aplikasi, mendeteksi crash, ANR, dan masalah UI tanpa menulis satu baris kode tes pun. Layanan ini mendukung integrasi dengan sistem CI/CD dan menyediakan laporan terperinci dengan video dan log.
Poin Utama
Firebase Test Lab adalah infrastruktur cloud Google untuk pengujian otomatis aplikasi seluler pada perangkat fisik yang berlokasi di pusat data global Google. Tidak seperti emulator di mesin lokal, Test Lab menjalankan tes pada perangkat Android dan iOS asli dengan berbagai versi sistem operasi, resolusi layar, jumlah RAM, dan tingkat API. Layanan ini secara otomatis memproses hasil tes, menyediakan video eksekusi, tangkapan layar langkah, dan log terperinci.
Memiliki perangkat sendiri memerlukan investasi modal yang signifikan untuk pembelian dan pemeliharaan perangkat fisik. Firebase Test Lab menyediakan akses ke ribuan perangkat dengan sistem bayar per penggunaan (pay-per-use) dengan batas gratis di paket Spark. Test Lab secara otomatis memperbarui perangkat ke model terbaru, termasuk flagship Google Pixel, Samsung Galaxy, Xiaomi, dan iPhone terbaru. Tes dijalankan secara paralel pada beberapa perangkat, yang mengurangi total waktu verifikasi aplikasi.
Untuk Android, Test Lab mendukung pengujian pada perangkat dengan tingkat API dari 21 hingga versi stabil Android terbaru. Dukungan iOS mencakup perangkat iPhone dan iPad asli dengan versi iOS dari 15 hingga versi stabil terbaru. Untuk iOS tersedia pengujian robot dan XCTest. Setiap tes dapat dijalankan pada perangkat fisik atau emulator — untuk hasil yang paling akurat, Google merekomendasikan penggunaan perangkat fisik karena dapat mengungkap masalah dengan sensor, kamera, dan antarmuka jaringan.
Firebase Test Lab mendukung beberapa jenis tes, yang masing-masing menyelesaikan tugasnya sendiri dalam siklus pengembangan: tes robot untuk pemeriksaan stabilitas cepat, tes instrumental untuk verifikasi fungsional, dan tes tangkapan layar untuk mendeteksi regresi visual. Pemilihan jenis tes tergantung pada tahap pengembangan dan tujuan dari pelaksanaan tertentu.
Tes robot adalah kemampuan unik Firebase Test Lab yang tidak memerlukan penulisan kode tes. Firebase Crawler secara otomatis menjelajahi aplikasi: menemukan semua elemen UI interaktif, mengkliknya, mengisi formulir dengan data tes, berpindah antar layar, dan mencatat setiap kegagalan (crash, ANR, pengecualian). Tes robot mendeteksi hingga 80% bug kritis tanpa satu baris kode tes pun, menjadikannya alat yang ideal untuk menilai stabilitas dasar aplikasi pada tahap awal pengembangan.
Tes instrumental adalah tes yang ditulis oleh pengembang menggunakan framework Espresso (Android) atau XCTest (iOS). Test Lab menjalankan APK dengan tes pada perangkat target dan mengumpulkan hasil eksekusi. Tes bisa sederhana (memeriksa tampilan elemen) atau kompleks (skenario end-to-end: otorisasi, menambah ke keranjang, menyelesaikan pesanan). Firebase Test Lab mendukung Android Test Orchestrator untuk mengisolasi tes satu sama lain, yang mencegah satu tes gagal memengaruhi yang lain.
Tes tangkapan layar digunakan untuk mendeteksi regresi visual dalam aplikasi. Game loop adalah jenis tes khusus yang mengirimkan daftar skenario ke aplikasi melalui intent, dan aplikasi harus menjalankan skenario tersebut dan mengambil tangkapan layar dari layar-layar kunci. Test Lab mengumpulkan tangkapan layar dari semua perangkat dalam matriks dan memungkinkan perbandingan dengan gambar referensi untuk mendeteksi perbedaan. Jenis tes ini sangat populer di aplikasi game untuk memeriksa rendering pada GPU yang berbeda.
| Jenis tes | Kode | Apa yang diperiksa | Kapan digunakan |
|---|---|---|---|
| Tes robot | Tidak diperlukan | Crash, ANR, pengecualian | Pemeriksaan stabilitas cepat |
| Instrumental | Espresso / XCTest | Fungsionalitas skenario | Pengujian regresi |
| Tangkapan layar | Game loop | Regresi visual | Pemeriksaan UI di berbagai perangkat |
Matriks pengujian di Firebase Test Lab adalah kumpulan konfigurasi perangkat tempat tes yang dipilih dijalankan. Setiap konfigurasi mencakup model perangkat, versi OS, orientasi layar (potret/lanskap), dan pengaturan regional (lokal, bahasa). Tes dijalankan secara paralel pada semua konfigurasi yang dipilih, yang secara signifikan mengurangi total waktu eksekusi dibandingkan dengan eksekusi berurutan pada setiap perangkat.
Google merekomendasikan untuk menyertakan perangkat dengan karakteristik berbeda dalam matriks: model flagship (Google Pixel, Samsung Galaxy S), perangkat anggaran (Moto G, Xiaomi Redmi), perangkat dengan versi API minimum yang didukung oleh aplikasi. Matriks optimal mencakup 5–10 konfigurasi yang mencakup semua versi OS yang didukung oleh aplikasi. Untuk iOS dipilih iPhone dan iPad dari generasi berbeda (misalnya iPhone SE, iPhone 14, iPad Air) dengan versi iOS yang berbeda.
Test Lab secara otomatis mendistribusikan tes ke perangkat yang dipilih, menjalankan setiap tes pada setiap konfigurasi. Waktu eksekusi seluruh matriks sama dengan waktu eksekusi tes paling lambat pada perangkat paling lambat — semua lainnya dijalankan secara paralel. Jika satu tes gagal di semua perangkat, Test Lab menghentikan eksekusinya pada konfigurasi yang tersisa untuk menghemat sumber daya. Hasil dikelompokkan berdasarkan tes dan perangkat, yang memungkinkan penentuan cepat apakah kesalahan spesifik untuk konfigurasi tertentu.
Pengujian robot adalah kemampuan andalan Firebase Test Lab yang memungkinkan eksplorasi otomatis aplikasi tanpa menulis satu tes pun. Firebase Crawler (robot) menganalisis hierarki UI aplikasi, menemukan semua elemen interaktif (tombol, bidang teks, daftar, menu) dan berinteraksi dengannya, mensimulasikan perilaku pengguna nyata. Pengujian robot sangat efektif pada tahap awal pengembangan, ketika tes belum ditulis, atau untuk memeriksa kode lama.
Untuk menjalankan tes robot, cukup unggah APK atau IPA ke Firebase Console dan pilih opsi Robo test. Robot dapat secara otomatis masuk ke aplikasi melalui kredensial yang dikonfigurasi sebelumnya (login/kata sandi) untuk mengakses layar yang tersembunyi di balik otorisasi. Anda juga dapat mengatur kedalaman eksplorasi (max depth) untuk membatasi jumlah langkah robot, atau menentukan elemen spesifik yang harus diklik robot secara prioritas.
<!-- res/xml/robo_directives.xml -->
<!-- Robot akan mengisi bidang login dan kata sandi -->
<?xml version="1.0" encoding="utf-8"?>
<robo-directives
xmlns:android="http://schemas.android.com/apk/res/android">
<directive
android:resourceName="@id/et_email"
android:inputValue="test@example.com" />
<directive
android:resourceName="@id/et_password"
android:inputValue="password123" />
<directive
android:resourceName="@id/btn_login"
android:clickAction="CLICK" />
</robo-directives>
Tes robot tidak menggantikan pengujian manual dan tes instrumental yang ditulis untuk skenario kompleks. Robot tidak dapat memeriksa logika bisnis: ia mengklik semua elemen secara berurutan, tetapi tidak tahu apakah hasilnya benar. Robot juga tidak dapat berinteraksi dengan tampilan kustom yang tidak mewarisi dari ViewGroup standar dan tidak memproses WebView. Untuk kasus ini, perlu menggunakan tes instrumental atau Game loop.
Integrasi Firebase Test Lab dengan sistem CI/CD memungkinkan pengujian otomatis setiap kali push ke repositori. Test Lab mendukung tugas Gradle untuk Android dan Fastlane untuk kedua platform. Konfigurasi pipeline CI/CD meliputi pembuatan aplikasi, mengunggah APK/IPA ke Google Cloud Storage, menjalankan tes melalui Firebase CLI, dan menerima laporan kembali ke sistem CI untuk menampilkan status build.
Google menyediakan plugin gcloud-test-lab untuk Gradle yang mengotomatiskan pengunggahan dan penjalanan tes. Tugas assembleAndroidTest membangun APK dengan tes, dan tugas gcloud mengunggahnya ke Test Lab dan menjalankan matriks. Hasil tes dikembalikan ke Gradle sebagai pass/fail, yang memungkinkan integrasi Test Lab ke pipeline CI mana pun yang mendukung Gradle. Untuk otorisasi, digunakan akun layanan Firebase dengan hak akses ke Test Lab.
// build.gradle (module: app)
task runTestLab() {
exec {
commandLine "gcloud", "firebase", "test", "android", "run",
"--type", "robo",
"--app", "build/outputs/apk/debug/app-debug.apk",
"--device", "model=Pixel7,version=33",
"--device", "model=GalaxyS23,version=34",
"--device", "model=RedmiNote12,version=31",
"--timeout", "15m",
"--results-dir", "firebase/test-lab/robo"
}
}
Fastlane menyediakan plugin firebase_test_lab untuk integrasi dengan tes iOS dan Android. Fastlane lane melakukan build, menjalankan tes, dan memproses hasil. Untuk iOS XCTest, Test Lab memerlukan file xctestrun, yang dibuat secara otomatis saat membangun target tes. Fastlane juga dapat mengunggah hasil tes ke Slack atau aplikasi perpesanan lain untuk memberi tahu tim tentang status pengujian setelah setiap eksekusi.
Setelah tes selesai Firebase Test Lab menyediakan laporan komprehensif yang tersedia di Firebase Console dan melalui gcloud CLI. Laporan mencakup ringkasan singkat (jumlah tes lulus, gagal, dan dilewati), informasi terperinci tentang setiap tes pada setiap perangkat, video eksekusi, tangkapan layar langkah-langkah kunci, dan log perangkat (logcat untuk Android, system log untuk iOS). Untuk tes yang gagal, tersedia stack trace yang menunjukkan lokasi kesalahan yang tepat.
Untuk tes robot, laporannya berbeda dari tes instrumental: alih-alih pass/fail per kasus tes, laporan menunjukkan statistik eksplorasi. Metrik kunci — jumlah layar yang ditemukan dan dikunjungi, jumlah interaksi robot (klik, gesek, masukan teks), crash dan ANR yang terdeteksi, serta jalur yang dilalui melalui aplikasi. Video eksekusi robot memungkinkan penilaian visual tentang layar mana yang telah diuji dan mana yang belum tercakup.
Hasil tes disimpan di Google Cloud Storage dalam bucket yang terikat dengan proyek. Data tersedia untuk diekspor dan diintegrasikan dengan sistem analitik eksternal. Untuk penyimpanan jangka panjang dan perbandingan hasil antar eksekusi, disarankan untuk mengonfigurasi ekspor BigQuery atau menggunakan Firebase Test Lab API untuk mendapatkan hasil secara terprogram. Google menyediakan kemampuan untuk mengunduh arsip ZIP dengan kumpulan hasil lengkap untuk setiap eksekusi tes.
Pertanyaan yang Sering Diajukan
Paket Spark mencakup 10 tes Robo per hari dan 5 jam tes instrumental per bulan secara gratis. Paket Blaze ditagih berdasarkan waktu: ~1 USD per perangkat-jam untuk tes Robo dan ~5 USD untuk tes instrumental. Harga pastinya tergantung pada wilayah dan jenis perangkat.
Perangkat fisik memberikan hasil yang lebih akurat, termasuk masalah dengan sensor, kamera, GPS, Bluetooth, dan kinerja nyata. Emulator memulai lebih cepat dan lebih murah, tetapi tidak mendeteksi masalah yang terkait dengan fitur perangkat keras. Google merekomendasikan perangkat fisik untuk pengujian pra-rilis.
Buat file XML robo_directives.xml dengan bidang input (login, kata sandi) dan tombol untuk diklik. Unggah file bersama APK saat menjalankan tes melalui Firebase Console atau CLI. Robot akan melakukan tindakan yang ditentukan sebelum memulai eksplorasi.
Ya, Firebase Test Lab mendukung iOS sejak 2024. Tes Robo (eksplorasi otomatis) dan XCTest (tes instrumental) tersedia pada perangkat iPhone dan iPad asli. Untuk mengunggah, diperlukan file IPA dengan target tes.
Gunakan Firebase CLI di GitHub Actions: konfigurasi autentikasi melalui Service Account JSON, instal gcloud SDK, jalankan perintah firebase test android run dengan menentukan APK dan konfigurasi. Hasil tes tersedia melalui Firebase Console atau gcloud CLI.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga