Firebase Test Lab Google کے ڈیٹا سینٹرز میں موجود حقیقی آلات پر موبائل ایپلیکیشنز کی خودکار جانچ کے لیے Google کی کلاؤڈ سروس ہے۔ Test Lab آپ کو Android اور iOS کے مختلف ورژنز کے ساتھ سینکڑوں ڈیوائس کنفیگریشنز پر انسٹرومینٹیشن ٹیسٹ، اسکرین شاٹ ٹیسٹ اور روبوٹ ٹیسٹ چلانے کی اجازت دیتا ہے، بغیر اپنی ڈیوائس فارم برقرار رکھنے کی ضرورت کے۔ Firebase Documentation, 2026 کے مطابق، Firebase روبوٹ ٹیسٹنگ خود بخود ایپلیکیشن کی تمام اسکرینوں سے گزرتا ہے، ٹیسٹ کوڈ کی ایک لائن بھی لکھے بغیر کریش، ANR اور UI مسائل کا پتہ لگاتا ہے۔ سروس CI/CD سسٹمز کے ساتھ انضمام کی حمایت کرتی ہے اور ویڈیوز اور لاگز کے ساتھ تفصیلی رپورٹس فراہم کرتی ہے۔
اہم نکات
Firebase Test Lab Google کے عالمی ڈیٹا سینٹرز میں موجود فزیکل ڈیوائسز پر موبائل ایپلیکیشنز کی خودکار جانچ کے لیے Google کا کلاؤڈ انفراسٹرکچر ہے۔ مقامی مشین پر ایمولیٹرز کے برعکس، Test Lab مختلف آپریٹنگ سسٹم ورژنز، اسکرین ریزولوشنز، RAM سائز اور API لیولز کے ساتھ حقیقی Android ڈیوائسز اور iOS ڈیوائسز پر ٹیسٹ چلاتا ہے۔ سروس خود بخود ٹیسٹ کے نتائج پر کارروائی کرتی ہے، ایگزیکیوشن ویڈیوز، مرحلہ وار اسکرین شاٹس اور تفصیلی لاگز فراہم کرتی ہے۔
اپنی ڈیوائس فارم کو برقرار رکھنے کے لیے فزیکل ڈیوائسز کی خریداری اور دیکھ بھال پر کافی سرمایہ خرچ کرنا پڑتا ہے۔ Firebase Test Lab Spark پلان پر مفت حد کے ساتھ استعمال کے مطابق ادائیگی کی بنیاد پر ہزاروں ڈیوائسز تک رسائی فراہم کرتا ہے۔ Test Lab خود بخود ڈیوائس پول کو موجودہ ماڈلز میں اپ ڈیٹ کرتا ہے، جس میں تازہ ترین فلیگ شپ Google Pixel، Samsung Galaxy، Xiaomi اور iPhone شامل ہیں۔ ٹیسٹ متعدد ڈیوائسز پر متوازی طور پر چلتے ہیں، جس سے ایپلیکیشن کی تصدیق کا کل وقت کم ہو جاتا ہے۔
Android کے لیے، Test Lab API لیول 21 سے لے کر تازہ ترین مستحکم Android ورژن تک ڈیوائسز پر ٹیسٹنگ کی حمایت کرتا ہے۔ iOS سپورٹ میں iOS 15 سے لے کر تازہ ترین مستحکم ورژن تک حقیقی iPhone اور iPad ڈیوائسز شامل ہیں۔ iOS کے لیے روبوٹ ٹیسٹنگ اور XCTest دستیاب ہیں۔ ہر ٹیسٹ فزیکل ڈیوائسز یا ایمولیٹرز پر چلایا جا سکتا ہے — سب سے درست نتائج کے لیے، Google فزیکل ڈیوائسز استعمال کرنے کی سفارش کرتا ہے کیونکہ وہ سینسرز، کیمرہ اور نیٹ ورک انٹرفیس کے مسائل ظاہر کرتے ہیں۔
Firebase Test Lab کئی اقسام کے ٹیسٹوں کی حمایت کرتا ہے، ہر ایک ترقیاتی دور میں اپنا کام حل کرتا ہے: فوری استحکام جانچ کے لیے روبوٹ ٹیسٹ، فعال تصدیق کے لیے انسٹرومینٹیشن ٹیسٹ اور بصری رجعت کا پتہ لگانے کے لیے اسکرین شاٹ ٹیسٹ۔ ٹیسٹ کی قسم کا انتخاب ترقی کے مرحلے اور کسی خاص رن کے اہداف پر منحصر ہے۔
روبوٹ ٹیسٹ Firebase Test Lab کی ایک انوکھی خصوصیت ہے جس کے لیے ٹیسٹ کوڈ لکھنے کی ضرورت نہیں ہوتی۔ Firebase Crawler خود بخود ایپلیکیشن کو ایکسپلور کرتا ہے: تمام انٹرایکٹو UI عناصر تلاش کرتا ہے، ان پر کلک کرتا ہے، ٹیسٹ ڈیٹا کے ساتھ فارم بھرتا ہے، اسکرینوں کے درمیان نیویگیٹ کرتا ہے اور کسی بھی ناکامی (کریش، ANR، مستثنیات) کو ریکارڈ کرتا ہے۔ روبوٹ ٹیسٹ ٹیسٹ کوڈ کی ایک لائن کے بغیر 80% تک اہم بگز کا پتہ لگاتے ہیں، جو انہیں ترقی کے ابتدائی مراحل میں ایپلیکیشن کے بنیادی استحکام کا جائزہ لینے کے لیے ایک مثالی آلہ بناتا ہے۔
انسٹرومینٹیشن ٹیسٹ وہ ٹیسٹ ہیں جو ڈویلپر Espresso (Android) یا XCTest (iOS) فریم ورکس کا استعمال کرتے ہوئے لکھتا ہے۔ Test Lab ٹیسٹوں کے ساتھ APK کو ہدف والے ڈیوائس پر چلاتا ہے اور عملدرآمد کے نتائج جمع کرتا ہے۔ ٹیسٹ سادہ (عناصر کی نمائش کی جانچ) یا پیچیدہ (اینڈ ٹو اینڈ منظرنامے: لاگ ان، کارٹ میں شامل کریں، چیک آؤٹ) ہو سکتے ہیں۔ Firebase Test Lab ٹیسٹوں کو ایک دوسرے سے الگ کرنے کے لیے Android Test Orchestrator کی حمایت کرتا ہے، جو ایک ناکام ٹیسٹ کو دوسروں کو متاثر کرنے سے روکتا ہے۔
اسکرین شاٹ ٹیسٹ ایپلیکیشن میں بصری رجعت کا پتہ لگانے کے لیے استعمال ہوتے ہیں۔ Game loop ایک خاص ٹیسٹ قسم ہے جو intent کے ذریعے ایپلیکیشن کو منظرناموں کی فہرست بھیجتا ہے، اور ایپلیکیشن کو ان منظرناموں پر عملدرآمد کرنا چاہیے اور اہم اسکرینوں کے اسکرین شاٹس لینے چاہئیں۔ Test Lab میٹرکس کے تمام ڈیوائسز سے اسکرین شاٹس جمع کرتا ہے اور فرق کا پتہ لگانے کے لیے ان کا حوالہ تصاویر سے موازنہ کرنے کی اجازت دیتا ہے۔ یہ ٹیسٹ قسم مختلف GPUs پر رینڈرنگ چیک کرنے کے لیے گیمنگ ایپلیکیشنز میں خاص طور پر مقبول ہے۔
| ٹیسٹ کی قسم | کوڈ | کیا جانچتا ہے | کب استعمال کریں |
|---|---|---|---|
| روبوٹ ٹیسٹ | ضروری نہیں | کریش، ANR، مستثنیات | فوری استحکام جانچ |
| انسٹرومینٹیشن | Espresso / XCTest | منظرناموں کی فعالیت | ریگریشن ٹیسٹنگ |
| اسکرین شاٹ ٹیسٹ | Game loop | بصری رجعت | مختلف ڈیوائسز پر UI جانچ |
ٹیسٹ میٹرکس Firebase Test Lab میں ڈیوائس کنفیگریشنز کا ایک سیٹ ہے جس پر منتخب ٹیسٹ عملدرآمد کیا جاتا ہے۔ ہر کنفیگریشن میں ڈیوائس ماڈل، OS ورژن، اسکرین اورینٹیشن (پورٹریٹ/لینڈ اسکیپ) اور علاقائی سیٹنگز (لوکیل، زبان) شامل ہیں۔ ٹیسٹ تمام منتخب کنفیگریشنز پر متوازی طور پر چلتا ہے، جو ہر ڈیوائس پر ترتیب وار چلانے کے مقابلے میں کل عملدرآمد کے وقت کو نمایاں طور پر کم کرتا ہے۔
Google میٹرکس میں مختلف خصوصیات والے ڈیوائسز شامل کرنے کی سفارش کرتا ہے: ایک فلیگ شپ ماڈل (Google Pixel، Samsung Galaxy S)، ایک بجٹ ڈیوائس (Moto G، Xiaomi Redmi)، ایپلیکیشن کے ذریعے تعاون یافتہ کم از کم API ورژن والا ڈیوائس۔ ایک بہترین میٹرکس میں 5–10 کنفیگریشنز شامل ہوتی ہیں جو ایپلیکیشن کے ذریعے تعاون یافتہ تمام OS ورژنز کا احاطہ کرتی ہیں۔ iOS کے لیے، مختلف iOS ورژنز کے ساتھ مختلف نسلوں کے iPhone اور iPad ماڈلز منتخب کیے جاتے ہیں (مثال کے طور پر، iPhone SE، iPhone 14، iPad Air)۔
Test Lab خود بخود منتخب ڈیوائسز پر ٹیسٹ تقسیم کرتا ہے، ہر کنفیگریشن پر ہر ٹیسٹ چلاتا ہے۔ پورے میٹرکس کا عملدرآمد کا وقت سب سے سست ڈیوائس پر سب سے سست ٹیسٹ کے عملدرآمد کے وقت کے برابر ہے — باقی سب متوازی چلتے ہیں۔ اگر ایک ٹیسٹ تمام ڈیوائسز پر ناکام ہو جاتا ہے، Test Lab وسائل بچانے کے لیے باقی کنفیگریشنز پر اس کا عملدرآمد روک دیتا ہے۔ نتائج ٹیسٹ اور ڈیوائس کے مطابق گروپ کیے جاتے ہیں، جس سے فوری طور پر یہ تعین کیا جا سکتا ہے کہ آیا غلطی کسی خاص کنفیگریشن کے لیے مخصوص ہے۔
روبوٹ ٹیسٹنگ Firebase Test Lab کی ایک اہم خصوصیت ہے جو آپ کو ایک بھی ٹیسٹ لکھے بغیر خود بخود ایپلیکیشن دریافت کرنے کی اجازت دیتی ہے۔ Firebase Crawler (روبوٹ) ایپلیکیشن کے UI درجہ بندی کا تجزیہ کرتا ہے، تمام انٹرایکٹو عناصر (بٹن، ٹیکسٹ فیلڈز، فہرستیں، مینوز) تلاش کرتا ہے اور حقیقی صارف کے رویے کی نقل کرتے ہوئے ان کے ساتھ تعامل کرتا ہے۔ روبوٹ ٹیسٹنگ ترقی کے ابتدائی مراحل میں خاص طور پر مؤثر ہے، جب ٹیسٹ ابھی تک نہیں لکھے گئے ہیں، یا لیگیسی کوڈ چیک کرنے کے لیے۔
روبوٹ ٹیسٹ چلانے کے لیے، Firebase Console میں APK یا IPA اپ لوڈ کریں اور Robo test آپشن منتخب کریں۔ روبوٹ خود بخود تصدیق کے پیچھے چھپی اسکرینوں تک رسائی کے لیے پہلے سے ترتیب شدہ اسناد (لاگ ان/پاس ورڈ) کے ذریعے ایپلیکیشن میں لاگ ان ہو سکتا ہے۔ آپ روبوٹ کے مراحل کی تعداد محدود کرنے کے لیے ایکسپلوریشن ڈیپتھ (max depth) بھی سیٹ کر سکتے ہیں، یا مخصوص عناصر بتا سکتے ہیں جن پر روبوٹ کو ترجیحی طور پر کلک کرنا چاہیے۔
<!-- res/xml/robo_directives.xml -->
<!-- روبوٹ لاگ ان اور پاس ورڈ کے فیلڈز بھرے گا -->
<?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>
روبوٹ ٹیسٹ پیچیدہ منظرناموں کے لیے دستی ٹیسٹنگ اور لکھے گئے انسٹرومینٹیشن ٹیسٹوں کی جگہ نہیں لیتے۔ روبوٹ کاروباری منطق کی جانچ نہیں کر سکتا: یہ ترتیب سے تمام عناصر پر کلک کرتا ہے، لیکن نہیں جانتا کہ نتیجہ درست ہے یا نہیں۔ نیز، روبوٹ کسٹم ویوز کے ساتھ تعامل نہیں کر سکتا جو معیاری ViewGroup سے وراثت میں نہیں ملتے، اور WebView کو ہینڈل نہیں کر سکتا۔ ان صورتوں کے لیے، انسٹرومینٹیشن ٹیسٹ یا Game loop استعمال کرنا چاہیے۔
Firebase Test Lab کا CI/CD سسٹمز کے ساتھ انضمام آپ کو ریپوزٹری میں ہر push کے ساتھ خود بخود ٹیسٹ چلانے کی اجازت دیتا ہے۔ Test Lab Android کے لیے Gradle کاموں اور دونوں پلیٹ فارمز کے لیے Fastlane کی حمایت کرتا ہے۔ CI/CD پائپ لائن ترتیب دینے میں ایپلیکیشن بنانا، APK/IPA کو Google Cloud Storage پر اپ لوڈ کرنا، Firebase CLI کے ذریعے ٹیسٹ چلانا اور بلڈ سٹیٹس ظاہر کرنے کے لیے CI سسٹم میں رپورٹس واپس حاصل کرنا شامل ہے۔
Google Gradle کے لیے gcloud-test-lab پلگ ان فراہم کرتا ہے، جو ٹیسٹ اپ لوڈ اور عملدرآمد کو خودکار کرتا ہے۔ assembleAndroidTest کام ٹیسٹوں کے ساتھ APK بناتا ہے، اور gcloud کے کام اسے Test Lab میں اپ لوڈ کرتے ہیں اور میٹرکس چلاتے ہیں۔ ٹیسٹ کے نتائج Gradle کو pass/fail کے طور پر واپس کیے جاتے ہیں، جو Gradle کو سپورٹ کرنے والی کسی بھی CI پائپ لائن میں Test Lab انضمام کی اجازت دیتا ہے۔ اختیار کے لیے Test Lab اجازتوں والا Firebase سروس اکاؤنٹ استعمال کیا جاتا ہے۔
// 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 اور Android ٹیسٹوں کے ساتھ انضمام کے لیے firebase_test_lab پلگ ان فراہم کرتا ہے۔ Fastlane lane بلڈ کرتا ہے، ٹیسٹ چلاتا ہے اور نتائج پر کارروائی کرتا ہے۔ iOS XCTest کے لیے، Test Lab کو xctestrun فائل کی ضرورت ہوتی ہے، جو ٹیسٹ ہدف بناتے وقت خود بخود بن جاتی ہے۔ Fastlane ہر رن کے بعد ٹیسٹ کی حیثیت کے بارے میں ٹیم کو مطلع کرنے کے لیے ٹیسٹ کے نتائج Slack یا دیگر میسنجرز پر اپ لوڈ کر سکتا ہے۔
ٹیسٹ مکمل ہونے کے بعد، Firebase Test Lab Firebase Console اور gcloud CLI کے ذریعے دستیاب ایک جامع رپورٹ فراہم کرتا ہے۔ رپورٹ میں ایک مختصر خلاصہ (پاس، فیل اور چھوڑے گئے ٹیسٹوں کی تعداد)، ہر ڈیوائس پر ہر ٹیسٹ کے لیے تفصیلی معلومات، ایگزیکیوشن ویڈیوز، اہم مراحل کے اسکرین شاٹس اور ڈیوائس لاگز (Android کے لیے logcat، iOS کے لیے سسٹم لاگ) شامل ہیں۔ ناکام ٹیسٹوں کے لیے، غلطی کے عین مقام کے ساتھ اسٹیک ٹریس دستیاب ہے۔
روبوٹ ٹیسٹ کے لیے، رپورٹ انسٹرومینٹیشن ٹیسٹ سے مختلف ہوتی ہے: ٹیسٹ کیس کے مطابق pass/fail کے بجائے، رپورٹ ایکسپلوریشن کے اعدادوشمار دکھاتی ہے۔ اہم میٹرکس — پائی گئی اور وزٹ کی گئی اسکرینوں کی تعداد، روبوٹ کے تعاملات کی تعداد (کلکس، سوائپس، ٹیکسٹ انپٹ)، پائے گئے کریش اور ANR، اور ایپلیکیشن کے ذریعے طے کردہ راستہ۔ روبوٹ ایگزیکیوشن ویڈیو آپ کو بصری طور پر اندازہ لگانے کی اجازت دیتی ہے کہ کن اسکرینوں کا ٹیسٹ کیا گیا اور کون سی غیر ٹیسٹ شدہ رہ گئی ہیں۔
ٹیسٹ کے نتائج پروجیکٹ سے منسلک بکٹ میں Google Cloud Storage میں محفوظ کیے جاتے ہیں۔ ڈیٹا برآمد اور بیرونی تجزیہ سسٹمز کے ساتھ انضمام کے لیے دستیاب ہے۔ رنز کے درمیان طویل مدتی ذخیرہ اور نتائج کا موازنہ کرنے کے لیے، BigQuery برآمد ترتیب دینے یا پروگرامی طور پر نتائج حاصل کرنے کے لیے Firebase Test Lab API استعمال کرنے کی سفارش کی جاتی ہے۔ Google ہر ٹیسٹ رن کے لیے نتائج کے مکمل سیٹ کے ساتھ ZIP آرکائیو ڈاؤن لوڈ کرنے کی صلاحیت فراہم کرتا ہے۔
اکثر پوچھے گئے سوالات
Spark پلان میں روزانہ 10 Robo ٹیسٹ اور ماہانہ 5 گھنٹے انسٹرومینٹیشن ٹیسٹ مفت شامل ہیں۔ Blaze پلان وقت کے مطابق بل کیا جاتا ہے: Robo ٹیسٹوں کے لیے ~1 USD فی ڈیوائس-گھنٹہ اور انسٹرومینٹیشن ٹیسٹوں کے لیے ~5 USD۔ صحیح قیمت کا انحصار علاقے اور ڈیوائس کی قسم پر ہے۔
فزیکل ڈیوائسز زیادہ درست نتائج دیتے ہیں، جس میں سینسرز، کیمرہ، GPS، بلوٹوتھ اور حقیقی کارکردگی کے مسائل شامل ہیں۔ ایمولیٹرز تیزی سے شروع ہوتے ہیں اور سستے ہیں، لیکن ہارڈویئر خصوصیات سے متعلق مسائل ظاہر نہیں کرتے۔ Google ریلیز سے پہلے کی جانچ کے لیے فزیکل ڈیوائسز کی سفارش کرتا ہے۔
ایک XML فائل robo_directives.xml بنائیں جس میں انپٹ فیلڈز (لاگ ان، پاس ورڈ) اور کلک کرنے کے بٹن ہوں۔ Firebase Console یا CLI کے ذریعے ٹیسٹ شروع کرتے وقت فائل کو APK کے ساتھ اپ لوڈ کریں۔ روبوٹ ایکسپلوریشن شروع کرنے سے پہلے مخصوص کارروائیاں انجام دے گا۔
جی ہاں، Firebase Test Lab 2024 سے iOS کو سپورٹ کرتا ہے۔ حقیقی iPhone اور iPad ڈیوائسز پر Robo ٹیسٹ (خودکار ایکسپلوریشن) اور XCTest (انسٹرومینٹیشن ٹیسٹ) دستیاب ہیں۔ اپ لوڈ کے لیے ٹیسٹ ہدف والی IPA فائل درکار ہے۔
GitHub Actions میں Firebase CLI استعمال کریں: Service Account JSON کے ذریعے تصدیق ترتیب دیں، gcloud SDK انسٹال کریں، APK اور کنفیگریشنز کے ساتھ firebase test android run کمانڈ چلائیں۔ ٹیسٹ کے نتائج Firebase Console یا gcloud CLI کے ذریعے دستیاب ہیں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں