Firebase Test Lab — Google ma'lumot markazlarida joylashgan real qurilmalarda mobil ilovalarni avtomatlashtirilgan sinovdan o'tkazish uchun Google bulut xizmatidir. Test Lab Android va iOS ning turli versiyalari bilan yuzlab qurilma konfiguratsiyalarida instrumental testlar, ekran tasviri testlari va robot testlarini ishga tushirish imkonini beradi, o'zingizning qurilma fermangizga ega bo'lish talab qilinmaydi. Firebase Documentation, 2026 ma'lumotlariga ko'ra, Firebase robot testi avtomatik ravishda ilovaning barcha ekranlaridan o'tadi, hech qanday test kodi satrini yozmasdan crash, ANR va UI muammolarini aniqlaydi. Xizmat CI/CD tizimlari bilan integratsiyani qo'llab-quvvatlaydi va video va jurnallar bilan batafsil hisobotlarni taqdim etadi.
Asosiy ma'lumotlar
Firebase Test Lab — Google'ning global ma'lumot markazlarida joylashgan fizik qurilmalarda mobil ilovalarni avtomatlashtirilgan sinovdan o'tkazish uchun bulut infratuzilmasi. Mahalliy mashinadagi emulyatorlardan farqli o'laroq, Test Lab real Android qurilmalari va iOS qurilmalarida turli operatsion tizim versiyalari, ekran o'lchamlari, RAM hajmi va API darajalari bilan testlarni ishga tushiradi. Xizmat avtomatik ravishda test natijalarini qayta ishlaydi, bajarish videosi, qadam ekran tasvirlari va batafsil jurnallarni taqdim etadi.
O'zingizning qurilma fermangizga ega bo'lish jismoniy qurilmalarni sotib olish va saqlash uchun katta kapital xarajatlarni talab qiladi. Firebase Test Lab Spark rejasida bepul limit bilan haqiqiy foydalanish uchun to'lov (pay-per-use) asosida minglab qurilmalarga kirishni ta'minlaydi. Test Lab qurilmalar parkini avtomatik ravishda eng so'nggi modellarga, jumladan eng yangi flagman Google Pixel, Samsung Galaxy, Xiaomi va iPhone'larga yangilaydi. Testlar bir nechta qurilmalarda parallel bajariladi, bu esa ilovani tekshirishning umumiy vaqtini qisqartiradi.
Android uchun Test Lab API darajasi 21 dan eng so'nggi barqaror Android versiyasigacha bo'lgan qurilmalarda testni qo'llab-quvvatlaydi. iOS qo'llab-quvvatlashi iOS 15 dan eng so'nggi barqaror versiyagacha real iPhone va iPad qurilmalarini o'z ichiga oladi. iOS uchun robot testi va XCTest mavjud. Har bir test jismoniy qurilmalarda yoki emulyatorlarda bajarilishi mumkin — maksimal aniq natijalar olish uchun Google jismoniy qurilmalardan foydalanishni tavsiya qiladi, chunki ular sensorlar, kamera va tarmoq interfeyslari bilan bog'liq muammolarni aniqlaydi.
Firebase Test Lab bir nechta test turlarini qo'llab-quvvatlaydi, ularning har biri ishlab chiqish siklida o'z vazifasini hal qiladi: barqarorlikni tez tekshirish uchun robot testlari, funksional tekshirish uchun instrumental testlar va vizual regressiyalarni aniqlash uchun ekran tasviri testlari. Test turini tanlash ishlab chiqish bosqichiga va aniq ishga tushirish maqsadlariga bog'liq.
Robot testlari Firebase Test Lab'ning noyob imkoniyati bo'lib, test kodi yozishni talab qilmaydi. Firebase Crawler avtomatik ravishda ilovani tadqiq qiladi: barcha interaktiv UI elementlarini topadi, ularni bosadi, formalarni test ma'lumotlari bilan to'ldiradi, ekranlar o'rtasida o'tadi va har qanday nosozlikni (crash, ANR, istisnolar) qayd etadi. Robot testlari hech qanday test kodi satrisiz kritik xatolarning 80% gacha aniqlaydi, bu ularni ishlab chiqishning dastlabki bosqichlarida ilovaning asosiy barqarorligini baholash uchun ideal vositaga aylantiradi.
Instrumental testlar — dasturchi tomonidan Espresso (Android) yoki XCTest (iOS) freymvorklaridan foydalanib yozilgan testlardir. Test Lab testlar bilan APK ni maqsadli qurilmada ishga tushiradi va bajarish natijalarini to'playdi. Testlar oddiy (elementlarni ko'rsatishni tekshirish) yoki murakkab (end-to-end stsenariylar: avtorizatsiya, savatga qo'shish, buyurtmani rasmiylashtirish) bo'lishi mumkin. Firebase Test Lab testlarni bir-biridan izolyatsiya qilish uchun Android Test Orchestrator'ni qo'llab-quvvatlaydi, bu esa bitta muvaffaqiyatsiz testning qolganlariga ta'sirini oldini oladi.
Ekran tasviri testlari ilovada vizual regressiyalarni aniqlash uchun ishlatiladi. Game loop — ilovaga intent orqali stsenariylar ro'yxatini uzatuvchi maxsus test turi bo'lib, ilova ushbu stsenariylarni bajarib, asosiy ekranlarning tasvirlarini olishi kerak. Test Lab matritsaning barcha qurilmalaridan ekran tasvirlarini to'playdi va farqlarni aniqlash uchun ularni etalonlar bilan solishtirish imkonini beradi. Ushbu test turi turli GPU'larda renderlashni tekshirish uchun o'yin ilovalarida ayniqsa mashhur.
| Test turi | Kod | Nimani tekshiradi | Qachon ishlatish |
|---|---|---|---|
| Robot testi | Talab qilinmaydi | Crash, ANR, istisnolar | Barqarorlikni tezkor tekshirish |
| Instrumental | Espresso / XCTest | Stsenariylar funksionalligi | Regressiya testi |
| Ekran tasviri | Game loop | Vizual regressiyalar | Turli qurilmalarda UI tekshirish |
Test matritsasi Firebase Test Lab'da tanlangan test bajariladigan qurilma konfiguratsiyalari to'plamidir. Har bir konfiguratsiya qurilma modeli, OS versiyasi, ekran yo'nalishi (portret/landshaft) va mintaqaviy sozlamalarni (lokal, til) o'z ichiga oladi. Test barcha tanlangan konfiguratsiyalarda parallel ravishda ishga tushiriladi, bu esa har bir qurilmada ketma-ket ishga tushirish bilan solishtirganda umumiy bajarish vaqtini sezilarli darajada kamaytiradi.
Google turli xarakteristikalarga ega qurilmalarni matritsaga kiritishni tavsiya qiladi: flagman model (Google Pixel, Samsung Galaxy S), byudjet qurilmasi (Moto G, Xiaomi Redmi), ilova qo'llab-quvvatlaydigan minimal API versiyasiga ega qurilma. Optimal matritsa ilova qo'llab-quvvatlaydigan barcha OS versiyalarini qamrab oluvchi 5–10 konfiguratsiyani o'z ichiga oladi. iOS uchun turli avlodlardagi iPhone va iPad (masalan, iPhone SE, iPhone 14, iPad Air) turli iOS versiyalari bilan tanlanadi.
Test Lab avtomatik ravishda testlarni tanlangan qurilmalarga taqsimlaydi, har bir testni har bir konfiguratsiyada bajaradi. Bajarish vaqti butun matritsa uchun eng sekin qurilmadagi eng sekin testning bajarish vaqtiga teng — qolganlarning barchasi parallel bajariladi. Agar bitta test barcha qurilmalarda muvaffaqiyatsiz bo'lsa, Test Lab resurslarni tejash uchun uni qolgan konfiguratsiyalarda to'xtatadi. Natijalar test va qurilma bo'yicha guruhlanadi, bu esa xatoning ma'lum bir konfiguratsiya uchun xos ekanligini tez aniqlash imkonini beradi.
Robot testi — hech qanday test yozmasdan ilovani avtomatik tadqiq qilish imkonini beruvchi Firebase Test Lab'ning flagman imkoniyatidir. Firebase Crawler (robot) ilovaning UI iyerarxiyasini tahlil qiladi, barcha interaktiv elementlarni (tugmalar, matn maydonlari, ro'yxatlar, menyu) topadi va haqiqiy foydalanuvchi xatti-harakatini simulyatsiya qilib, ular bilan o'zaro aloqaga kiradi. Robot testi ayniqsa ishlab chiqishning dastlabki bosqichlarida, testlar hali yozilmaganida yoki legacy kodni tekshirish uchun samaralidir.
Robot testini ishga tushirish uchun Firebase Console'da APK yoki IPA yuklash va Robo test variantini tanlash kifoya. Robot avtorizatsiya ortida yashirin ekranlarga kirish uchun oldindan sozlangan hisob ma'lumotlari (login/parol) orqali ilovaga avtomatik kirishi mumkin. Shuningdek, robot qadamlari sonini cheklash uchun tadqiqot chuqurligini (max depth) belgilash yoki robot ustuvor ravishda bosishi kerak bo'lgan aniq elementlarni ko'rsatish mumkin.
<!-- res/xml/robo_directives.xml -->
<!-- Robot login va parol maydonlarini to'ldiradi -->
<?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 testlari murakkab stsenariylar uchun qo'lda test qilish va yozilgan instrumental testlarni almashtirmaydi. Robot biznes mantiqni tekshira olmaydi: u barcha elementlarni ketma-ket bosadi, ammo natija to'g'ri yoki yo'qligini bilmaydi. Shuningdek, robot standart ViewGroup'dan meros olmaydigan maxsus ko'rinishlar bilan o'zaro aloqaga kira olmaydi va WebView'ni qayta ishlamaydi. Bunday hollarda instrumental testlar yoki Game loop dan foydalanish kerak.
Firebase Test Lab'ning CI/CD tizimlari bilan integratsiyasi har bir repozitoriyaga push qilinganda avtomatik test ishga tushirish imkonini beradi. Test Lab Android uchun Gradle vazifalarini va ikkala platforma uchun Fastlane'ni qo'llab-quvvatlaydi. CI/CD quvur liniyasini sozlash ilovani yig'ish, APK/IPA ni Google Cloud Storage'ga yuklash, Firebase CLI orqali testlarni ishga tushirish va yig'ish holatini ko'rsatish uchun hisobotlarni CI tizimiga qaytarishni o'z ichiga oladi.
Google yuklash va test ishga tushirishni avtomatlashtiradigan Gradle uchun gcloud-test-lab plaginini taqdim etadi. assembleAndroidTest vazifasi testlar bilan APK yig'adi, gcloud vazifalari esa uni Test Lab'ga yuklaydi va matritsani ishga tushiradi. Test natijalari Gradle'ga pass/fail sifatida qaytariladi, bu esa Test Lab'ni Gradle'ni qo'llab-quvvatlaydigan istalgan CI quvur liniyasiga integratsiya qilish imkonini beradi. Avtorizatsiya uchun Test Lab'ga huquqlari bo'lgan Firebase xizmat hisobi ishlatiladi.
// 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 va Android testlari bilan integratsiya uchun firebase_test_lab plaginini taqdim etadi. Fastlane lane yig'ishni bajaradi, testlarni ishga tushiradi va natijalarni qayta ishlaydi. iOS XCTest Test Lab uchun test maqsadini yig'ishda avtomatik yaratiladigan xctestrun fayli talab qilinadi. Fastlane shuningdek, har bir ishga tushirishdan so'ng jamoani test holati haqida xabardor qilish uchun test natijalarini Slack yoki boshqa messenjerlarga yuklashi mumkin.
Testlar tugagandan so'ng Firebase Test Lab Firebase Console va gcloud CLI orqali mavjud bo'lgan keng qamrovli hisobotni taqdim etadi. Hisobot qisqa xulosa (o'tgan, muvaffaqiyatsiz va o'tkazib yuborilgan testlar soni), har bir test haqida har bir qurilmada batafsil ma'lumot, bajarish videosi, asosiy qadamlarning ekran tasvirlari va qurilma jurnallarini (Android uchun logcat, iOS uchun system log) o'z ichiga oladi. Muvaffaqiyatsiz testlar uchun xatoning aniq joyini ko'rsatadigan stack trace mavjud.
Robot testi uchun hisobot instrumental testdan farq qiladi: test holatlari bo'yicha pass/fail o'rniga hisobot tadqiqot statistikasini ko'rsatadi. Asosiy ko'rsatkichlar — topilgan va tashrif buyurilgan ekranlar soni, robot o'zaro aloqalari soni (bosishlar, surishlar, matn kiritish), aniqlangan crash va ANR'lar va ilova bo'ylab o'tilgan yo'l. Robotning bajarish videosi qaysi ekranlar sinovdan o'tganini va qaysilari qamrab olinmaganini vizual baholash imkonini beradi.
Test natijalari Google Cloud Storage'da loyihaga bog'langan bucket'da saqlanadi. Ma'lumotlar eksport va tashqi analitik tizimlar bilan integratsiya uchun mavjud. Uzoq muddatli saqlash va ishga tushirishlar o'rtasida natijalarni solishtirish uchun BigQuery eksportini sozlash yoki natijalarni dasturiy olish uchun Firebase Test Lab API dan foydalanish tavsiya etiladi. Google har bir test ishga tushirish uchun natijalarning to'liq to'plami bilan ZIP arxivini yuklab olish imkoniyatini beradi.
Ko'p beriladigan savollar
Spark rejasi kuniga 10 Robo testi va oyiga 5 soat instrumental testni bepul o'z ichiga oladi. Blaze rejasi vaqt bo'yicha tariflanadi: Robo testlari uchun qurilma-soati ~1 USD va instrumental testlar uchun ~5 USD. Aniq narx mintaqa va qurilma turiga bog'liq.
Jismoniy qurilmalar sensorlar, kamera, GPS, Bluetooth va real ishlash bilan bog'liq muammolarni o'z ichiga olgan holda aniqroq natijalar beradi. Emulyatorlar tezroq ishga tushadi va arzonroq, ammo apparat xususiyatlari bilan bog'liq muammolarni aniqlamaydi. Google chiqarishdan oldingi test uchun jismoniy qurilmalarni tavsiya qiladi.
Kirish maydonlari (login, parol) va bosish tugmalari bilan robo_directives.xml XML faylini yarating. Testni Firebase Console yoki CLI orqali ishga tushirishda faylni APK bilan birga yuklang. Robot tadqiqotni boshlashdan oldin belgilangan harakatlarni bajaradi.
Ha, Firebase Test Lab 2024 yildan boshlab iOS ni qo'llab-quvvatlaydi. Haqiqiy iPhone va iPad qurilmalarida Robo testlari (avtomatik tadqiqot) va XCTest (instrumental testlar) mavjud. Yuklash uchun test maqsadi bilan IPA fayli talab qilinadi.
GitHub Actions'da Firebase CLI dan foydalaning: Service Account JSON orqali autentifikatsiyani sozlang, gcloud SDK o'rnating, APK va konfiguratsiyalarni ko'rsatib firebase test android run buyrug'ini bajaring. Test natijalari Firebase Console yoki gcloud CLI orqali mavjud.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.