Firebase Test Lab — Google məlumat mərkəzlərində yerləşən real cihazlarda mobil tətbiqlərin avtomatlaşdırılmış test edilməsi üçün Google bulud xidmətidir. Test Lab Android və iOS-un müxtəlif versiyaları olan yüzlərlə cihaz konfiqurasiyasında instrumental testlər, ekran görüntüsü testləri və robot testlərini işə salmağa imkan verir, öz cihaz fermasına sahib olmaq tələb olunmur. Firebase Documentation, 2026-ya görə, Firebase robot testi avtomatik olaraq tətbiqin bütün ekranlarından keçir, heç bir test kodu sətri yazmadan crash, ANR və UI problemlərini aşkarlayır. Xidmət CI/CD sistemləri ilə inteqrasiyanı dəstəkləyir və video və jurnallarla ətraflı hesabatlar təqdim edir.
Əsas məqamlar
Firebase Test Lab — Google-ın qlobal məlumat mərkəzlərində yerləşən fiziki cihazlarda mobil tətbiqlərin avtomatlaşdırılmış test edilməsi üçün bulud infrastrukturudur. Yerli maşındakı emulyatorlardan fərqli olaraq, Test Lab real Android cihazlarında və iOS qurğularında müxtəlif əməliyyat sistemləri versiyaları, ekran təsvir ölçüləri, RAM həcmi və API səviyyələri ilə testlər işə salır. Xidmət avtomatik olaraq test nəticələrini emal edir, video keçidi, addım ekran görüntülərini və ətraflı jurnalları təqdim edir.
Öz cihaz fermasına sahib olmaq fiziki qurğuların alınması və saxlanması üçün əhəmiyyətli kapital xərcləri tələb edir. Firebase Test Lab Spark planında pulsuz limitlə faktiki istifadəyə görə ödəniş (pay-per-use) əsasında minlərlə cihaza giriş təmin edir. Test Lab cihaz parkını avtomatik olaraq ən son modellərə, o cümlədən ən yeni flaqman Google Pixel, Samsung Galaxy, Xiaomi və iPhone-a yeniləyir. Testlər bir neçə cihazda paralel icra olunur ki, bu da tətbiqin yoxlanılmasının ümumi vaxtını azaldır.
Android üçün Test Lab API səviyyəsi 21-dən ən son stabil Android versiyasına qədər cihazlarda testi dəstəkləyir. iOS dəstəyi iOS 15-dən ən son stabil versiyaya qədər real iPhone və iPad qurğularını əhatə edir. iOS üçün robot testi və XCTest mövcuddur. Hər bir test fiziki cihazlarda və ya emulyatorlarda icra oluna bilər — maksimum dəqiq nəticələr üçün Google fiziki qurğulardan istifadə etməyi tövsiyə edir, çünki onlar sensorlar, kamera və şəbəkə interfeysləri ilə problemləri aşkarlayır.
Firebase Test Lab bir neçə test növünü dəstəkləyir, hər biri inkişaf dövründə öz vəzifəsini həll edir: sabitliyi sürətli yoxlamaq üçün robot testləri, funksional yoxlama üçün instrumental testlər və vizual reqressiyaları aşkarlamaq üçün ekran görüntüsü testləri. Test növünün seçimi inkişaf mərhələsindən və konkret işə salmanın məqsədlərindən asılıdır.
Robot testləri Firebase Test Lab-in unikal imkanıdır və test kodu yazmağı tələb etmir. Firebase Crawler avtomatik olaraq tətbiqi tədqiq edir: bütün interaktiv UI elementlərini tapır, onları sıxır, formaları test məlumatları ilə doldurur, ekranlar arasında keçid edir və hər hansı nasazlığı (crash, ANR, istisnalar) qeyd edir. Robot testləri heç bir test kodu sətri olmadan kritik səhvlərin 80%-ə qədərini aşkarlayır ki, bu da onları inkişafın ilkin mərhələlərində tətbiqin əsas sabitliyini qiymətləndirmək üçün ideal alət edir.
İnstrumental testlər — proqramçı tərəfindən Espresso (Android) və ya XCTest (iOS) çərçivələrindən istifadə edərək yazılmış testlərdir. Test Lab testlərlə APK-nı hədəf cihazda işə salır və icra nəticələrini toplayır. Testlər sadə (elementlərin göstərilməsini yoxlamaq) və ya mürəkkəb (end-to-end ssenarilər: avtorizasiya, səbətə əlavə etmə, sifarişin rəsmiləşdirilməsi) ola bilər. Firebase Test Lab testləri bir-birindən təcrid etmək üçün Android Test Orchestrator-u dəstəkləyir ki, bu da bir uğursuz testin digərlərinə təsirinin qarşısını alır.
Ekran görüntüsü testləri tətbiqdə vizual reqressiyaları aşkarlamaq üçün istifadə olunur. Game loop — tətbiqə intent vasitəsilə ssenarilər siyahısını ötürən xüsusi test növüdür və tətbiq bu ssenariləri icra edib əsas ekranların görüntülərini çəkməlidir. Test Lab matrisin bütün cihazlarından ekran görüntülərini toplayır və fərqləri aşkarlamaq üçün onları etalonlarla müqayisə etməyə imkan verir. Bu test növü müxtəlif GPU-larda renderin yoxlanılması üçün oyun tətbiqlərində xüsusilə populyardır.
| Test növü | Kod | Nəyi yoxlayır | Nə vaxt istifadə etməli |
|---|---|---|---|
| Robot testi | Tələb olunmur | Crash, ANR, istisnalar | Sabitliyin sürətli yoxlanması |
| İnstrumental | Espresso / XCTest | Ssenarilərin funksionallığı | Reqressiya testi |
| Ekran görüntüsü | Game loop | Vizual reqressiyalar | Müxtəlif cihazlarda UI yoxlanması |
Test matrisi Firebase Test Lab-da seçilmiş testin icra olunduğu cihaz konfiqurasiyaları dəstidir. Hər bir konfiqurasiya cihaz modelini, OS versiyasını, ekran oriyentasiyasını (portret/landşaft) və regional parametrləri (lokal, dil) əhatə edir. Test bütün seçilmiş konfiqurasiyalarda paralel işə salınır ki, bu da hər bir cihazda ardıcıl işə salma ilə müqayisədə ümumi icra müddətini əhəmiyyətli dərəcədə azaldır.
Google müxtəlif xarakteristikaları olan cihazları matrisə daxil etməyi tövsiyə edir: flaqman model (Google Pixel, Samsung Galaxy S), büdcə cihazı (Moto G, Xiaomi Redmi), tətbiqin dəstəklədiyi minimum API versiyası olan cihaz. Optimal matris tətbiqin dəstəklədiyi bütün OS versiyalarını əhatə edən 5–10 konfiqurasiyadan ibarətdir. iOS üçün müxtəlif nəsillərdən iPhone və iPad (məsələn, iPhone SE, iPhone 14, iPad Air) müxtəlif iOS versiyaları ilə seçilir.
Test Lab avtomatik olaraq testləri seçilmiş cihazlara bölüşdürür, hər bir testi hər bir konfiqurasiyada icra edir. İcra müddəti bütün matris üçün ən yavaş cihazda ən yavaş testin icra müddətinə bərabərdir — qalanların hamısı paralel icra olunur. Əgər bir test bütün cihazlarda uğursuz olarsa, Test Lab resurslara qənaət etmək üçün onun icrasını qalan konfiqurasiyalarda dayandırır. Nəticələr testə və cihaza görə qruplaşdırılır ki, bu da xətanın konkret konfiqurasiya üçün spesifik olub-olmadığını tez müəyyən etməyə imkan verir.
Robot testi — heç bir test yazmadan tətbiqi avtomatik tədqiq etməyə imkan verən Firebase Test Lab-in flaqman imkanıdır. Firebase Crawler (robot) tətbiqin UI iyerarxiyasını təhlil edir, bütün interaktiv elementləri (düymələr, mətn sahələri, siyahılar, menyu) tapır və real istifadəçinin davranışını simulyasiya edərək onlarla qarşılıqlı əlaqəyə girir. Robot testi xüsusilə inkişafın ilkin mərhələlərində, testlər hələ yazılmadıqda və ya legacy kodu yoxlamaq üçün effektivdir.
Robot testini işə salmaq üçün Firebase Console-da APK və ya IPA yükləmək və Robo test seçimini etmək kifayətdir. Robot avtorizasiya arxasında gizlənmiş ekranlara giriş əldə etmək üçün əvvəlcədən konfiqurasiya edilmiş etimadnamə (login/şifrə) vasitəsilə tətbiqə avtomatik daxil ola bilər. Robotun addımlarının sayını məhdudlaşdırmaq üçün tədqiq dərinliyini (max depth) təyin etmək və ya robotun prioritet sıxmalı olduğu konkret elementləri göstərmək olar.
<!-- res/xml/robo_directives.xml -->
<!-- Robot login və şifrə sahələrini dolduracaq -->
<?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>
Robot testləri mürəkkəb ssenarilər üçün əl ilə test etməni və yazılmış instrumental testləri əvəz etmir. Robot biznes məntiqini yoxlaya bilmir: o, bütün elementləri ardıcıl sıxır, lakin nəticənin düzgün olub-olmadığını bilmir. Həmçinin robot standart ViewGroup-dan miras almayan fərdi görünüşlərlə qarşılıqlı əlaqədə ola bilmir və WebView-i emal etmir. Bu hallar üçün instrumental testlərdən və ya Game loop-dan istifadə etmək lazımdır.
Firebase Test Lab-in CI/CD sistemləri ilə inteqrasiyası hər bir repozitoriya pushunda avtomatik test işə salmağa imkan verir. Test Lab Android üçün Gradle tapşırıqlarını və hər iki platforma üçün Fastlane-i dəstəkləyir. CI/CD boru xəttinin qurulması tətbiqin yığılması, APK/IPA-nın Google Cloud Storage-ə yüklənməsi, Firebase CLI vasitəsilə testlərin işə salınması və yığım statusunu göstərmək üçün hesabatların CI sisteminə qaytarılmasını əhatə edir.
Google yükləmə və test işə salmanı avtomatlaşdıran Gradle üçün gcloud-test-lab plaginini təqdim edir. assembleAndroidTest tapşırığı testlərlə APK yığır, gcloud tapşırıqları isə onu Test Lab-a yükləyir və matrisi işə salır. Test nəticələri Gradle-ə pass/fail kimi qaytarılır ki, bu da Test Lab-ı Gradle-i dəstəkləyən istənilən CI boru xəttinə inteqrasiya etməyə imkan verir. Avtorizasiya üçün Test Lab-a hüquqları olan Firebase xidmət hesabı istifadə olunur.
// 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 iOS və Android testləri ilə inteqrasiya üçün firebase_test_lab plaginini təqdim edir. Fastlane lane yığımı icra edir, testləri işə salır və nəticələri emal edir. iOS XCTest Test Lab üçün test hədəfinin yığılması zamanı avtomatik yaradılan xctestrun faylı tələb olunur. Fastlane həmçinin test nəticələrini hər işə salmadan sonra komandaya test statusu barədə məlumat vermək üçün Slack və ya digər messencerlərə yükləyə bilər.
Testlər başa çatdıqdan sonra Firebase Test Lab Firebase Console və gcloud CLI vasitəsilə əldə olunan kompleks hesabat təqdim edir. Hesabat qısa xülasə (keçən, uğursuz və buraxılmış testlərin sayı), hər bir test haqqında hər bir cihazda ətraflı məlumat, video keçid, əsas addımların ekran görüntüləri və cihaz jurnallarını (Android üçün logcat, iOS üçün system log) əhatə edir. Uğursuz testlər üçün xətanın dəqiq yerini göstərən stack trace mövcuddur.
Robot testi üçün hesabat instrumental testdən fərqlənir: test halları üzrə pass/fail əvəzinə hesabat tədqiqat statistikasını göstərir. Əsas metrikalar — tapılmış və ziyarət edilmiş ekranların sayı, robot qarşılıqlı əlaqələrinin sayı (kliklər, sürüşdürmələr, mətn daxil etmə), aşkarlanmış crash və ANR-lər və tətbiq üzrə keçilən yol. Robotun video keçidi hansı ekranların test edildiyini və hansıların əhatə olunmadığını vizual qiymətləndirməyə imkan verir.
Test nəticələri Google Cloud Storage-də layihəyə bağlı bucket-də saxlanılır. Məlumatlar ixrac və xarici analitik sistemlərlə inteqrasiya üçün əlçatandır. Uzunmüddətli saxlama və işə salmalar arasında nəticələrin müqayisəsi üçün BigQuery ixracını konfiqurasiya etmək və ya nəticələri proqramlı şəkildə əldə etmək üçün Firebase Test Lab API-dən istifadə etmək tövsiyə olunur. Google hər bir test işə salması üçün nəticələrin tam dəsti ilə ZIP arxivini yükləmək imkanı verir.
Tez-tez verilən suallar
Spark planı gündə 10 Robo testi və ayda 5 saat instrumental testi pulsuz əhatə edir. Blaze planı vaxta görə tariflənir: Robot testləri üçün cihaz-saatı ~1 USD, instrumental testlər üçün ~5 USD. Dəqiq qiymət regiondan və cihaz növündən asılıdır.
Fiziki cihazlar sensorlar, kamera, GPS, Bluetooth və real performansla bağlı problemlər də daxil olmaqla daha dəqiq nəticələr verir. Emulyatorlar daha sürətli işə düşür və daha ucuzdur, lakin aparat xüsusiyyətləri ilə bağlı problemləri aşkarlamır. Google buraxılış öncəsi test üçün fiziki cihazları tövsiyə edir.
Daxiletmə sahələri (login, şifrə) və sıxma düymələri olan robo_directives.xml XML faylı yaradın. Testi Firebase Console və ya CLI vasitəsilə işə salarkən faylı APK ilə birlikdə yükləyin. Robot tədqiqata başlamazdan əvvəl göstərilən hərəkətləri yerinə yetirəcək.
Bəli, Firebase Test Lab 2024-cü ildən iOS-u dəstəkləyir. Real iPhone və iPad cihazlarında Robo testləri (avtomatik tədqiq) və XCTest (instrumental testlər) mövcuddur. Yükləmə üçün test hədəfi olan IPA faylı tələb olunur.
GitHub Actions-da Firebase CLI istifadə edin: Service Account JSON vasitəsilə autentifikasiyanı qurun, gcloud SDK quraşdırın, APK və konfiqurasiyaları göstərərək firebase test android run əmrini icra edin. Test nəticələri Firebase Console və ya gcloud CLI vasitəsilə əldə edilə bilər.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun