الاختبار في "استوديو Android"

تم تصميم "استوديو Android" لتسهيل عملية الاختبار. فهي تحتوي على العديد من الميزات لتبسيط كيفية إنشاء الاختبارات وإجرائها وتحليلها. يمكنك إعداد اختبارات يتم تشغيلها على جهازك المحلي أو الاختبارات المعدّة التي يتم إجراؤها على أحد الأجهزة. ويمكنك بسهولة إجراء اختبار واحد أو مجموعة محدّدة من الاختبارات على جهاز واحد أو أكثر. يتم عرض نتائج الاختبار مباشرةً في Android Studio.

الشكل 1. "استوديو Android" يعرض نظرة عامة على نتائج الاختبار.

تتناول هذه الصفحة كيفية إدارة الاختبارات في "استوديو Android". لمعرفة كيفية كتابة اختبارات Android الآلية، يمكنك الاطّلاع على اختبار التطبيقات على Android.

أنواع الاختبارات ومواقعها الجغرافية

يعتمد موقع اختباراتك على نوع الاختبار الذي تكتبه. وتحتوي مشاريع Android على أدلة رموز مصدر افتراضية لاختبارات الوحدات المحلية والاختبارات الآلية.

تُقام اختبارات الوحدات المحلية في module-name/src/test/java/. هذه هي اختبارات يتم تشغيلها على جهاز Java الافتراضي المحلي (JVM). استخدم هذه الاختبارات لتقليل وقت التنفيذ عندما لا تحتوي اختباراتك على تبعيات لإطار عمل Android أو عندما يكون بإمكانك إنشاء نُسخ اختبار مزدوجة لتبعيات إطار عمل Android. للحصول على مزيد من المعلومات حول طريقة كتابة اختبارات الوحدات المحلية، يمكنك الاطّلاع على مقالة إنشاء اختبارات الوحدات المحلية.

تُقام الاختبارات الآلية في $module-name/src/androidTest/java/. ويتم إجراء هذه الاختبارات على جهاز أو محاكي. كما يمكنهم الوصول إلى واجهات برمجة تطبيقات Instrumentation التي تتيح لك الوصول إلى معلومات، مثل الفئة Context، على التطبيق الذي تختبره، وتسمح لك بالتحكّم في التطبيق الذي يخضع للاختبار من رمز الاختبار. تكون الاختبارات الآلية مدمجة في حزمة APK منفصلة، بحيث يكون لها ملف AndroidManifest.xml خاص بها. ويتم إنشاء هذا الملف تلقائيًا، ولكن يمكنك إنشاء نسختك الخاصة على $module-name/src/androidTest/AndroidManifest.xml، والتي سيتم دمجها مع البيان الذي تم إنشاؤه. استخدِم الاختبارات المعدّة آليًا عند كتابة اختبارات التكامل واختبارات واجهة المستخدم الوظيفية لبرمجة تفاعل المستخدم، أو عندما تشتمل اختباراتك على تبعيات لنظام التشغيل Android لا يمكنك إنشاء اختبارات مضاعفة لها. لمزيد من المعلومات حول كيفية كتابة اختبارات معدّلة، يمكنك الاطّلاع على إنشاء اختبارات معدّلة وبرمجة اختبارات واجهة المستخدم.

يمكنك إجراء اختباراتك في أدلة خاصة بإصدار معيّن لاختبار متغيرات إصدار معيّنة فقط. على سبيل المثال، يمكنك إجراء بعض اختبارات الوحدات المحلية في $module-name/src/testMyFlavor/java/ بحيث تستهدف الاختبارات تطبيقك الذي تم إنشاؤه باستخدام رمز مصدر هذه النكهة. ولمزيد من المعلومات عن كيفية إنشاء هذه الاختبارات المخصّصة، يمكنك الاطّلاع على إنشاء اختبار موجَّه لصيغة إصدار.

عند إنشاء مشروع جديد أو إضافة وحدة تطبيق، ينشئ "استوديو Android" مجموعات مصدر الاختبار المدرَجة سابقًا مع تضمين نموذج ملف اختبار في كل منها. ويمكنك رؤيتها في نافذة المشروع كما هو موضح في الشكل 2.

الشكل 2. تظهر الاختبارات المُعدّة آليًا (1) و(2) من اختبارات JVM المحلية الخاصة بمشروعك في عرض المشروع (على اليمين) أو عرض Android (على اليسار).

إنشاء اختبارات جديدة

يمكنك إضافة اختبار جديد لفئة أو طريقة معيّنة مباشرةً من رمز المصدر باتّباع الخطوات التالية:

  1. افتح ملف المصدر الذي يحتوي على الرمز الذي تريد اختباره.
  2. ضع المؤشر على اسم الفئة أو الطريقة التي تريد اختبارها، واضغط على Control+Shift+T (Command+Shift+T على نظام التشغيل macOS).
  3. في النافذة المنبثقة التي تظهر، انقر على إنشاء اختبار جديد...
  4. في مربّع الحوار إنشاء اختبار، اختَر JUnit4، وعدِّل الحقول والطرق التي تريد إنشاءها، ثم انقر على حسنًا.
  5. في مربع الحوار اختيار دليل الوجهة، انقر على مجموعة المصدر المقابلة لنوع الاختبار الذي تريد إنشاءه: androidTest لاختبار الآلة أو test لاختبار وحدة محلية. بعد ذلك، انقر على حسنًا.

بدلاً من ذلك، يمكنك إنشاء ملف اختبار عام في مجموعة مصادر الاختبار المناسبة على النحو التالي:

  1. في نافذة المشروع على اليمين، انقر على القائمة المنسدلة واختر عرض Android.
  2. انقر بزر الماوس الأيمن على دليل Java واختر New (جديد) > Java Class (فئة Java) أو New (جديد) > Kotlin Class/File (فئة/ملف Kotlin). يمكنك بدلاً من ذلك اختيار دليل JavaScript واستخدام الاختصار Control+N (Command+N على نظام التشغيل macOS).
  3. في مربع الحوار اختيار دليل الوجهة، انقر على مجموعة المصدر المقابلة لنوع الاختبار الذي تريد إنشاءه: androidTest لاختبار الآلة أو test لاختبار وحدة محلية. بعد ذلك، انقر على حسنًا.
  4. أدخِل اسمًا للملف ثم انقر على حسنًا.

إذا لم يتم تجميع تطبيقك بعد إضافة اختبار، فتأكد من إعداد تبعيات مكتبة الاختبار الصحيحة. راجِع إنشاء اختبارات محلية وإنشاء اختبارات مبرمجة للتبعيات الصحيحة.

إجراء الاختبارات

قبل إجراء أي اختبارات، تأكَّد من أنّ مشروعك تتم مزامنته بالكامل مع Gradle من خلال النقر على مزامنة المشروع في شريط الأدوات. يمكنك إجراء اختبارات بمستويات مختلفة من الدقة:

  • لإجراء جميع الاختبارات في دليل أو ملف، افتح نافذة المشروع ونفِّذ أحد الإجراءين التاليَين:

    • انقر بزر الماوس الأيمن على دليل أو ملف وانقر على Run (تشغيل) .
    • اختَر الدليل أو الملف واستخدِم الاختصار Control+Shift+R.
  • لإجراء جميع الاختبارات في صف دراسي أو بطريقة معيّنة، افتح ملف الاختبار في "أداة تعديل الرموز" ونفِّذ أحد الإجراءَين التاليَين:

    • اضغط على رمز تشغيل الاختبار في الخزانة.
    • انقر بزر الماوس الأيمن على صف الاختبار أو طريقة الاختبار وانقر على تشغيل .
    • اختَر فئة الاختبار أو طريقة الاختبار واستخدِم الاختصار Control+Shift+R.

وسيتم إجراء الاختبارات المعدّة على جهاز مادي أو محاكي. لمعرفة مزيد من المعلومات حول إعداد الأجهزة الفعلية، يُرجى الاطلاع على تشغيل التطبيقات على جهاز. لمعرفة المزيد حول إعداد المحاكيات، يُرجى الاطّلاع على تشغيل التطبيقات على محاكي Android.

ضبط إجراء الاختبار

يتم إجراء اختباراتك تلقائيًا باستخدام إعدادات التشغيل التلقائية في "استوديو Android". إذا كنت بحاجة إلى تغيير بعض إعدادات التشغيل مثل مشغّل الأدوات وخيارات النشر، يمكنك تعديل تهيئة التشغيل في مربع الحوار إعدادات التشغيل/تصحيح الأخطاء (انقر على تشغيل > تعديل الإعدادات).

أداة تنفيذ اختبار Gradle الموحّد

يستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android 7.1.0 وAndroid Studio Bumblebee والإصدارات الأحدث تطبيق Gradle على نظام التشغيل التجريبي المزوّد بأجهزة Android من أجل إجراء الاختبارات المعدّة. باستخدام برنامج الاختبار نفسه، يُحتمل أن تكون النتائج متسقة، سواء شغّلت AGP من سطر الأوامر مثل خادم الدمج المستمر أو من Android Studio.

الشكل 3. مُشغِّل اختبار Gradle الموحّد.

تستخدم الإصدارات السابقة من استوديو Android برنامج التشغيل التجريبي المزوّد بأجهزة Android من IntelliJ بدلاً من برنامج الاختبار المزوّد بأجهزة Android من Gradle. لذلك، إذا كنت لا تستخدم أحدث إصدار من استوديو Android، وبناءً على ما إذا كنت تنفِّذ اختباراتك من استوديو Android أو من سطر الأوامر باستخدام المكوِّن الإضافي Gradle، قد تظهر لك نتائج اختبارات مختلفة، مثل الاختبارات التي تجتاز الاختبار من خلال عدّاء وتلك التي لا تنجح في تنفيذ اختبارات أخرى.

الشكل 4. أدوات اختبار منفصلة في الإصدارات القديمة من "استوديو Android"

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

الشكل 5. إجراء اختبارات بدءًا من إجراء هامش التوثيق.

عند إجراء الاختبارات الآلية، يمكنك التأكد من أنّ استوديو Android يستخدم برنامج تشغيل اختبارات Gradle من خلال فحص نتائج الاختبار في "مصفوفة الاختبار" لنتيجة مهام Gradle.

إيقاف برنامج تشغيل اختبار Gradle الموحّد

يستخدم Android Studio Bumblebee تلقائيًا أداة Gradle لإجراء اختبارات قياس حالة التطبيق. وإذا كنت تواجه مشاكل، يمكنك إيقاف هذا السلوك كما يلي:

  1. اختَر ملف > إعدادات > إنشاء، تنفيذ، نشر > اختبار (أو استوديو Android > الإعدادات المفضّلة > الإنشاء، التنفيذ، النشر > الاختبار على نظام التشغيل MacOS).
  2. أزِل العلامة من المربّع بجانب تشغيل الاختبارات المتوافقة مع Android باستخدام Gradle وانقر على حسنًا.

عند إجراء اختبارات خارج "استوديو Android"، يمكنك أيضًا العودة إلى السلوكيات القديمة من خلال تنفيذ أحد الإجراءات التالية:

  • استخدِم معلَمة سطر الأوامر التالية: -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false
  • أضِف المَعلمة التالية إلى ملف gradle.properties لمشروعك: android.experimental.androidTest.useUnifiedTestPlatform=false

للمساعدة في حل المشاكل التي قد تواجهها، يُرجى الإبلاغ عن الخطأ.

التشغيل على أجهزة متعددة بالتوازي

تُجرى الاختبارات الآلية تلقائيًا على جهاز مادي أو محاكٍ واحد. إذا كنت تريد الاطّلاع على أداء اختباراتك على مجموعة أكبر من الأجهزة، يمكنك اختيار المزيد من الأجهزة باتّباع الخطوات التالية:

  1. قبل إجراء الاختبارات، افتح القائمة المنسدلة الجهاز المستهدف، وحدد اختيار أجهزة متعددة....

    الشكل 6. حدد القائمة المنسدلة "أجهزة متعددة".

  2. اختَر الأجهزة التي تريدها وانقر على حسنًا.

  3. تأكد من تغيير النص في القائمة المنسدلة الهدف إلى أجهزة متعددة وانقر على تشغيل .

  4. تعرض نافذة أداة مصفوفة الاختبار نتائج الاختبار لكل تهيئة جهاز تم تحديدها.

    الشكل 7. نتائج الاختبار في نافذة أداة مصفوفة الاختبار.

  5. يمكنك النقر على اختبار معيّن لفحص النتيجة في لوحة الإخراج. ويمكنك أيضًا تصنيف الاختبارات بالنقر على الأعمدة المختلفة.

إجراء التنفيذ باستخدام مركز الاختبار الافتراضي لمنصة Firebase

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

لبدء استخدام Firebase Test Lab، يجب عليك إجراء ما يلي:

  1. أنشئ حساب Google إذا لم يكن لديك حساب حاليًا.
  2. في وحدة تحكُّم Firebase، انقر على إنشاء مشروع جديد.

يوفر Android Studio أدوات مدمجة تتيح لك ضبط الطريقة التي تريد بها نشر الاختبارات في Firebase Test Lab. بعد إنشاء مشروع Firebase، يمكنك إنشاء إعدادات اختبار وتنفيذ الاختبارات:

  1. انقر على Run (تشغيل) > Edit Configurations (تعديل الإعدادات) من القائمة الرئيسية.
  2. انقر على إضافة إعدادات جديدة واختَر الاختبارات الآلية على Android.
  3. أدخِل تفاصيل الاختبار أو اختَرها، مثل اسم الاختبار ونوع الوحدة ونوع الاختبار وفئة الاختبار.
  4. من القائمة المنسدلة الهدف ضمن خيارات هدف النشر، اختر مصفوفة جهاز اختبار Firebase.
  5. في حال عدم تسجيل الدخول، انقر على تسجيل الدخول باستخدام حساب Google واسمح لـ "استوديو Android" بالوصول إلى حسابك.
  6. بجانب مشروع Cloud، اختَر مشروعك على Firebase من القائمة.
  7. بجانب إعداد المصفوفة، اختَر أحد الإعدادات التلقائية من القائمة المنسدلة أو أنشئ إعداداتك الخاصة بالضغط على فتح مربع الحوار . يمكنك تحديد جهاز أو أكثر من الأجهزة وإصدارات Android واللغات واتجاهات الشاشة التي تريد اختبار تطبيقك بها. سيختبر Firebase Test Lab تطبيقك وفقًا لكل مجموعة من اختياراتك عند تحقيق نتائج الاختبار.
  8. انقر على حسنًا في مربع الحوار إعدادات التشغيل/تصحيح الأخطاء للخروج.
  9. نفِّذ الاختبارات بالنقر على تشغيل .

الشكل 8. إنشاء إعدادات اختبار في مركز الاختبار الافتراضي لمنصة Firebase

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

عندما يكمل Firebase Test Lab إجراء الاختبارات، ستفتح نافذة Run لعرض النتائج، كما هو موضح في الشكل 9. قد تحتاج إلى النقر على إظهار تم اجتياز الاختبار للاطّلاع على جميع الاختبارات التي تم تنفيذها.

الشكل 9. نتائج الاختبارات المُعدّة باستخدام Firebase Test Lab

يمكنك أيضًا تحليل اختباراتك على الويب عن طريق اتّباع الرابط المعروض في بداية سجلّ تنفيذ الاختبار في نافذة تشغيل.

الاطّلاع على تغطية الاختبار

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

لإجراء الاختبارات في ظل التغطية، اتّبِع الخطوات نفسها الموضّحة في إجراء الاختبارات، فقط بدلاً من النقر على إجراء ، انقر على إجراء اسم الاختبار مع تغطية إخبارية . في نافذة المشروع، قد يكون هذا الخيار مخفيًا خلف المزيد من التشغيل/تصحيح الأخطاء. يمكنك أيضًا ضبط إعدادات التغطية في مربع الحوار عمليات ضبط التشغيل/تصحيح الأخطاء، ضمن علامة التبويب تغطية الرمز.

الشكل 10. النسب المئوية التي تغطيها الرمز لأحد التطبيقات.

عرض نتائج الاختبار

عند إجراء اختبار واحد أو أكثر من "استوديو Android"، تظهر النتائج في نافذة تشغيل. يوضح الشكل 11 تشغيلاً تجريبيًا ناجحًا.

الشكل 11. تظهر نتائج الاختبار في نافذة "التشغيل".

تعرض نافذة التشغيل الاختبارات في عرض تدرّجي على يمين الصفحة، والنتائج والرسائل لمجموعة الاختبار الحالية في جزء الإخراج على يسار الصفحة. استخدم أشرطة الأدوات وقوائم السياق ورموز الحالة لإدارة نتائج الاختبار، كما يلي:

  1. استخدِم شريط أدوات التشغيل لإعادة تشغيل الاختبار الحالي وإيقاف الاختبار الحالي وإعادة إجراء الاختبارات الفاشلة (لا يظهر لك هذا الخيار لأنّه متاح لاختبارات الوحدات فقط) وإيقاف الإخراج مؤقتًا وتفريغ سلاسل التعليمات.
  2. استخدِم شريط أدوات الاختبار لفلترة نتائج الاختبار وترتيبها. يمكنك أيضًا توسيع العُقد أو تصغيرها وإظهار تغطية الاختبارات واستيراد نتائج الاختبار أو تصديرها.
  3. انقر على قائمة السياق لتتبع الاختبار قيد التنفيذ، وعرض الإحصاءات المضمنة، والتمرير إلى تتبع تسلسل استدعاء الدوال البرمجية، وفتح رمز المصدر في إحدى حالات الاستثناء، والتمرير التلقائي إلى المصدر، واختيار أول اختبار فاشل عند اكتمال تشغيل الاختبار.
  4. تشير رموز حالة الاختبار إلى ما إذا كان هناك خطأ في الاختبار، أو تم تجاهله، أو فشله، أو أنه قيد التقدم، أو تم اجتيازه، أو تم إيقافه مؤقتًا، أو تم إنهاؤه، أو لم يتم تشغيله.
  5. انقر بزر الماوس الأيمن على سطر في العرض التدرّجي للحساب لعرض قائمة سياق تتيح لك إجراء الاختبارات في وضع تصحيح الأخطاء أو فتح ملف رمز مصدر الاختبار أو الانتقال إلى السطر في رمز المصدر الذي يجري اختباره.

تحليل حالات إخفاق الاختبارات

عند تعذُّر اختبار واحد أو أكثر من اختباراتك، تعرض نافذة النتائج علامة تحذير وعدد حالات الإخفاق (على سبيل المثال، "تعذّر اجتياز الاختبارات: 1"):

الشكل 12. تفاصيل الاختبار الذي تعذّر في لوحة الإخراج

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

مزيد من المعلومات

تتناول هذه الصفحة الخطوات الأساسية التي يجب اتباعها عند إنشاء أول اختبار لك وتشغيله باستخدام Android Studio. يمكنك أيضًا اختيار إجراء اختبارات من سطر الأوامر. يمكنك أيضًا مراجعة مستندات IntelliJ حول الاختبار. لمزيد من المعلومات عن كيفية تهيئة اختباراتك عند إنشاء مجموعة اختبار أكبر، راجع إعداد الاختبار المتقدم.