Firebase Test Lab — ما هو، أنواع اختبارات الأجهزة والأتمتة

المؤلف: IT Sectr نُشر: 2026-04-29 وقت القراءة: 9 دق

Firebase Test Lab هو خدمة سحابية من Google للاختبار الآلي للتطبيقات المحمولة على أجهزة حقيقية موجودة في مراكز بيانات Google. يتيح Test Lab تشغيل اختبارات الأدوات واختبارات لقطات الشاشة واختبارات الروبوت على مئات تكوينات الأجهزة بإصدارات مختلفة من Android وiOS دون الحاجة إلى صيانة مزرعة أجهزة خاصة بك. وفقًا لـ Firebase Documentation, 2026، اختبار الروبوت من Firebase يمر تلقائيًا عبر جميع شاشات التطبيق، مكتشفًا الأعطال وANR ومشاكل واجهة المستخدم دون كتابة سطر واحد من كود الاختبار. تدعم الخدمة التكامل مع أنظمة CI/CD وتوفر تقارير مفصلة مع فيديوهات وسجلات.

النقاط الرئيسية

  • Firebase Test Lab هو خدمة سحابية لاختبار التطبيقات المحمولة على أجهزة حقيقية في مراكز بيانات Google مع فوترة حسب الاستخدام.
  • اختبارات الروبوت — استكشاف تلقائي للتطبيق: يتجول Firebase Crawler عبر جميع الشاشات، وينقر على الأزرار ويملأ النماذج، مكتشفًا الأخطاء دون كتابة كود.
  • اختبارات الأدوات — تشغيل اختبارات Espresso وXCTest وUI Automator على أجهزة حقيقية مع تنفيذ متوازي على تكوينات مختلفة.
  • مصفوفة الأجهزة — تُجرى الاختبارات في وقت واحد على مجموعة مختارة من الأجهزة بإصدارات مختلفة من نظام التشغيل واتجاهات الشاشة واللغات.
  • التقارير — بعد الاختبار، تتوفر السجلات ولقطات الشاشة وفيديوهات تنفيذ الاختبار وملخص بالأخطاء المكتشفة وبيانات الأداء.

ما هو Firebase Test Lab

Firebase Test Lab هو البنية التحتية السحابية من Google للاختبار الآلي للتطبيقات المحمولة على أجهزة مادية موجودة في مراكز البيانات العالمية من Google. على عكس المحاكيات على الجهاز المحلي، يقوم Test Lab بتشغيل الاختبارات على أجهزة Android حقيقية وأجهزة iOS بإصدارات مختلفة من أنظمة التشغيل ودقات الشاشة وأحجام الذاكرة ومستويات API. تقوم الخدمة بمعالجة نتائج الاختبار تلقائيًا، وتوفر فيديوهات التنفيذ ولقطات شاشة للخطوات وسجلات مفصلة.

فوائد الاختبار السحابي

تتطلب صيانة مزرعة أجهزة خاصة بك استثمارًا رأسماليًا كبيرًا في شراء وصيانة الأجهزة المادية. Firebase Test Lab يوفر الوصول إلى آلاف الأجهزة بنظام الدفع حسب الاستخدام مع حد مجاني على خطة Spark. يقوم Test Lab بتحديث مجموعة الأجهزة تلقائيًا إلى الطرازات الحالية، بما في ذلك أحدث الأجهزة الرائدة Google Pixel وSamsung Galaxy وXiaomi وiPhone. تُجرى الاختبارات بالتوازي على أجهزة متعددة، مما يقلل من الوقت الإجمالي للتحقق من التطبيق.

المنصات المدعومة

لنظام Android، يدعم Test Lab الاختبار على الأجهزة بمستويات API من 21 إلى أحدث إصدار ثابت من Android. دعم iOS يشمل أجهزة iPhone وiPad حقيقية بإصدارات iOS من 15 إلى أحدث إصدار ثابت. اختبار الروبوت وXCTest متاحان لنظام iOS. يمكن تشغيل كل اختبار على أجهزة مادية أو محاكيات — للحصول على أدق النتائج، توصي Google باستخدام الأجهزة المادية لأنها تكشف المشكلات المتعلقة بالمستشعرات والكاميرا وواجهات الشبكة.

أنواع الاختبارات في Firebase Test Lab

Firebase Test Lab يدعم عدة أنواع من الاختبارات، كل منها يحل مهمته الخاصة في دورة التطوير: اختبارات الروبوت للتحقق السريع من الاستقرار، واختبارات الأدوات للتحقق الوظيفي، واختبارات لقطات الشاشة لاكتشاف الانحدارات البصرية. يعتمد اختيار نوع الاختبار على مرحلة التطوير وأهداف التشغيل المحدد.

اختبارات الروبوت (Robo tests)

اختبارات الروبوت هي ميزة فريدة من Firebase Test Lab لا تتطلب كتابة كود اختبار. Firebase Crawler يستكشف التطبيق تلقائيًا: يجد جميع عناصر واجهة المستخدم التفاعلية، وينقر عليها، ويملأ النماذج ببيانات الاختبار، وينتقل بين الشاشات ويسجل أي أعطال (crash، ANR، استثناءات). تكتشف اختبارات الروبوت ما يصل إلى 80% من الأخطاء الحرجة دون سطر واحد من كود الاختبار، مما يجعلها أداة مثالية لتقييم الاستقرار الأساسي للتطبيق في المراحل المبكرة من التطوير.

اختبارات الأدوات

اختبارات الأدوات هي اختبارات يكتبها المطور باستخدام أطر Espresso (Android) أو XCTest (iOS). يقوم Test Lab بتشغيل APK مع الاختبارات على الجهاز المستهدف ويجمع نتائج التنفيذ. يمكن أن تكون الاختبارات بسيطة (التحقق من عرض العناصر) أو معقدة (سيناريوهات شاملة: تسجيل الدخول، إضافة إلى السلة، إتمام الشراء). يدعم Firebase Test Lab Android Test Orchestrator لعزل الاختبارات عن بعضها البعض، مما يمنع تأثير اختبار فاشل على الآخرين.

اختبارات لقطات الشاشة (Game loop ولقطات الشاشة)

تُستخدم اختبارات لقطات الشاشة لاكتشاف الانحدارات البصرية في التطبيق. Game loop هو نوع اختبار خاص يمرر قائمة من السيناريوهات إلى التطبيق عبر intent، ويجب على التطبيق تنفيذ هذه السيناريوهات والتقاط لقطات شاشة للشاشات الرئيسية. يجمع Test Lab لقطات الشاشة من جميع الأجهزة في المصفوفة ويسمح بمقارنتها بالصور المرجعية لاكتشاف الاختلافات. هذا النوع من الاختبارات شائع بشكل خاص في تطبيقات الألعاب للتحقق من العرض على وحدات معالجة رسومات مختلفة.

نوع الاختبارالكودما يتحقق منهمتى يستخدم
اختبار الروبوتغير مطلوبCrash، ANR، استثناءاتتحقق سريع من الاستقرار
اختبار الأدواتEspresso / XCTestوظائف السيناريوهاتاختبار الانحدار
اختبار لقطة الشاشةGame loopانحدارات بصريةالتحقق من واجهة المستخدم على أجهزة مختلفة

مصفوفة الأجهزة والتكوينات

مصفوفة الاختبار في Firebase Test Lab هي مجموعة من تكوينات الأجهزة التي يتم تنفيذ الاختبار المحدد عليها. يتضمن كل تكوين طراز الجهاز وإصدار نظام التشغيل واتجاه الشاشة (عمودي/أفقي) والإعدادات الإقليمية (اللغة). يتم تشغيل الاختبار بالتوازي على جميع التكوينات المحددة، مما يقلل بشكل كبير من إجمالي وقت التنفيذ مقارنة بالتشغيل المتسلسل على كل جهاز.

اختيار الأجهزة للمصفوفة

توصي Google بتضمين أجهزة ذات خصائص مختلفة في المصفوفة: طراز رائد (Google Pixel، Samsung Galaxy S)، جهاز اقتصادي (Moto G، Xiaomi Redmi)، جهاز بأحدث إصدار API مدعوم من التطبيق. المصفوفة المثلى تتضمن 5–10 تكوينات تغطي جميع إصدارات نظام التشغيل التي يدعمها التطبيق. لنظام iOS، يتم اختيار طرازات iPhone وiPad من أجيال مختلفة (مثل iPhone SE، iPhone 14، iPad Air) بإصدارات مختلفة من iOS.

تجميع الاختبارات والتوازي

يقوم Test Lab بتوزيع الاختبارات تلقائيًا عبر الأجهزة المحددة، وتشغيل كل اختبار على كل تكوين. وقت التنفيذ للمصفوفة بأكملها يساوي وقت تنفيذ أبطأ اختبار على أبطأ جهاز — جميع الاختبارات الأخرى تعمل بالتوازي. إذا فشل اختبار واحد على جميع الأجهزة، يوقف Test Lab تنفيذه على التكوينات المتبقية لتوفير الموارد. يتم تجميع النتائج حسب الاختبار وحسب الجهاز، مما يسمح بالتحديد السريع لما إذا كان الخطأ خاصًا بتكوين معين.

اختبار الروبوت: الاستكشاف التلقائي

اختبار الروبوت هو ميزة رائدة في Firebase Test Lab تتيح لك استكشاف التطبيق تلقائيًا دون كتابة اختبار واحد. يقوم Firebase Crawler (الروبوت) بتحليل التسلسل الهرمي لواجهة المستخدم للتطبيق، ويجد جميع العناصر التفاعلية (الأزرار، حقول النص، القوائم، القوائم) ويتفاعل معها، محاكيًا سلوك المستخدم الحقيقي. يكون اختبار الروبوت فعالاً بشكل خاص في المراحل المبكرة من التطوير، عندما لم تُكتب الاختبارات بعد، أو للتحقق من الكود القديم.

إعداد اختبار الروبوت

لتشغيل اختبار الروبوت، ما عليك سوى تحميل APK أو IPA إلى Firebase Console واختيار خيار Robo test. يمكن للروبوت تسجيل الدخول تلقائيًا إلى التطبيق من خلال بيانات اعتماد مكونة مسبقًا (تسجيل الدخول/كلمة المرور) للوصول إلى الشاشات المخفية وراء المصادقة. يمكنك أيضًا تعيين عمق الاستكشاف (max depth) للحد من عدد خطوات الروبوت، أو تحديد عناصر محددة يجب على الروبوت النقر عليها بالأولوية.

xml
<!-- 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.

التكامل مع CI/CD وGradle

تكامل Firebase Test Lab مع أنظمة CI/CD يسمح بتشغيل الاختبارات تلقائيًا مع كل push إلى المستودع. يدعم Test Lab مهام Gradle لنظام Android وFastlane لكلتا المنصتين. يشمل إعداد خط أنابيب CI/CD بناء التطبيق، تحميل APK/IPA إلى Google Cloud Storage، تشغيل الاختبارات عبر Firebase CLI واستلام التقارير مرة أخرى إلى نظام CI لعرض حالة البناء.

الإعداد عبر Gradle (Android)

توفر Google المكون الإضافي gcloud-test-lab لـ Gradle، الذي يؤتمت تحميل وتنفيذ الاختبارات. مهمة assembleAndroidTest تبني APK مع الاختبارات، ومهام gcloud تحمله إلى Test Lab وتشغل المصفوفة. يتم إرجاع نتائج الاختبار إلى Gradle كـ pass/fail، مما يسمح بتكامل Test Lab مع أي خط أنابيب CI يدعم Gradle. يتم استخدام حساب خدمة Firebase بصلاحيات Test Lab للمصادقة.

groovy
// 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

يوفر Fastlane المكون الإضافي firebase_test_lab للتكامل مع اختبارات iOS وAndroid. lane Fastlane يقوم بالبناء، ويشغل الاختبارات ويعالج النتائج. لـ XCTest على iOS، يتطلب Test Lab ملف xctestrun، الذي يتم إنشاؤه تلقائيًا عند بناء هدف الاختبار. يمكن لـ Fastlane أيضًا تحميل نتائج الاختبار إلى Slack أو تطبيقات المراسلة الأخرى لإخطار الفريق بحالة الاختبار بعد كل تشغيل.

تحليل نتائج الاختبار

بعد اكتمال الاختبارات، يوفر Firebase Test Lab تقريرًا شاملاً متاحًا في Firebase Console وعبر gcloud CLI. يتضمن التقرير ملخصًا موجزًا (عدد الاختبارات الناجحة والفاشلة والتي تم تخطيها)، ومعلومات مفصلة عن كل اختبار على كل جهاز، وفيديوهات التنفيذ، ولقطات شاشة للخطوات الرئيسية وسجلات الجهاز (logcat لنظام Android، سجل النظام لـ iOS). للاختبارات الفاشلة، يتوفر stack trace مع موقع الخطأ الدقيق.

تفسير نتائج اختبار الروبوت

بالنسبة لاختبار الروبوت، يختلف التقرير عن تقرير اختبار الأدوات: بدلاً من pass/fail لكل حالة اختبار، يُظهر التقرير إحصائيات الاستكشاف. المقاييس الرئيسية — عدد الشاشات التي تم العثور عليها وزيارتها، وعدد تفاعلات الروبوت (النقرات، التمرير، إدخال النص)، والأعطال وANR المكتشفة، والمسار الذي تم اجتيازه عبر التطبيق. يتيح فيديو تنفيذ الروبوت تقييمًا بصريًا للشاشات التي تم اختبارها والتي بقيت غير مغطاة.

تصدير النتائج

يتم تخزين نتائج الاختبار في Google Cloud Storage في الحاوية المرتبطة بالمشروع. البيانات متاحة للتصدير والتكامل مع أنظمة التحليل الخارجية. للتخزين طويل الأمد ومقارنة النتائج بين عمليات التشغيل، يُوصى بإعداد تصدير BigQuery أو استخدام واجهة برمجة تطبيقات Firebase Test Lab للحصول على النتائج برمجيًا. توفر Google إمكانية تنزيل أرشيف ZIP مع المجموعة الكاملة من النتائج لكل تشغيل اختبار.

الأسئلة الشائعة

كم تكلفة Firebase Test Lab؟

خطة Spark تتضمن 10 اختبارات Robo يوميًا و5 ساعات من اختبارات الأدوات شهريًا مجانًا. خطة Blaze تُفوتر حسب الوقت: ~1 دولار أمريكي لكل ساعة جهاز لاختبارات Robo و~5 دولارات أمريكية لاختبارات الأدوات. تعتمد التكلفة الدقيقة على المنطقة ونوع الجهاز.

كيف تختلف الأجهزة المادية عن المحاكيات في Test Lab؟

الأجهزة المادية تعطي نتائج أكثر دقة، بما في ذلك مشكلات المستشعرات والكاميرا ونظام تحديد المواقع والبلوتوث والأداء الحقيقي. المحاكيات تبدأ بشكل أسرع وأرخص، لكنها لا تكشف المشكلات المتعلقة بميزات الأجهزة. توصي Google باستخدام الأجهزة المادية للاختبارات قبل الإصدار.

كيفية إعداد التفويض لاختبار الروبوت؟

أنشئ ملف XML robo_directives.xml بحقول إدخال (تسجيل الدخول، كلمة المرور) وأزرار للنقر. قم بتحميل الملف مع APK عند بدء الاختبار عبر Firebase Console أو CLI. سيقوم الروبوت بتنفيذ الإجراءات المحددة قبل بدء الاستكشاف.

هل يمكنني تشغيل اختبارات على iOS في Firebase Test Lab؟

نعم، يدعم Firebase Test Lab iOS منذ عام 2024. اختبارات Robo (الاستكشاف التلقائي) وXCTest (اختبارات الأدوات) متاحة على أجهزة iPhone وiPad الحقيقية. مطلوب ملف IPA مع هدف اختبار للتحميل.

كيفية دمج Test Lab مع GitHub Actions؟

استخدم Firebase CLI في GitHub Actions: قم بإعداد المصادقة عبر Service Account JSON، وقم بتثبيت gcloud SDK، وقم بتنفيذ الأمر firebase test android run مع APK والتكوينات. نتائج الاختبار متاحة عبر Firebase Console أو gcloud CLI.

الخلاصة

  • Firebase Test Lab هو خدمة سحابية من Google لاختبار التطبيقات المحمولة على أجهزة حقيقية مع فوترة حسب الاستخدام.
  • ثلاثة أنواع من الاختبارات — اختبارات الروبوت (بدون كود، استكشاف تلقائي)، اختبارات الأدوات (Espresso، XCTest) واختبارات لقطات الشاشة (Game loop) لمهام تحقق مختلفة.
  • مصفوفة الأجهزة تسمح بتشغيل الاختبارات بالتوازي على مجموعة من التكوينات (الطراز + إصدار نظام التشغيل + الاتجاه)، مما يقلل من وقت التحقق الإجمالي.
  • اختبارات الروبوت (Firebase Crawler) تستكشف التطبيق تلقائيًا، مكتشفةً ما يصل إلى 80% من الأخطاء الحرجة دون كتابة سطر واحد من كود الاختبار.
  • التكامل مع CI/CD — يدعم Test Lab Gradle وFastlane وFirebase CLI للتشغيل التلقائي للاختبارات مع كل push إلى المستودع.
  • تقارير مفصلة تشمل فيديوهات التنفيذ ولقطات الشاشة وسجلات الجهاز وstack traces لكل اختبار فاشل على كل تكوين.
  • حد مجاني — 10 اختبارات Robo يوميًا على خطة Spark، كافية للتحقق الأساسي من استقرار التطبيق في دورة التطوير اليومية.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا