اختبار نظام Android الأساسي

يوفّر "المشروع المفتوح المصدر لنظام Android" ‏ (AOSP) عدة أدوات ومجموعات اختبار لاختبار أجزاء مختلفة من عملية التنفيذ. قبل استخدام الصفحات في هذا القسم، يجب أن تكون على دراية بالمصطلحات التالية:

جهاز متوافق مع Android
هو جهاز يمكنه تشغيل أي تطبيق خارجي كتبه مطوّرو تطبيقات خارجية باستخدام حزمة Android SDK وNDK. يجب أن تلتزم الأجهزة المتوافقة مع Android بمتطلبات "مستند تعريف معايير التوافق" (CDD) وأن تجتاز "مجموعة أدوات اختبار التوافق" (CTS). تكون الأجهزة المتوافقة مع Android مؤهّلة للمشاركة في نظام Android الأساسي، الذي يتضمّن الترخيص المحتمَل لـ Google Play والترخيص المحتمَل لحزمة تطبيقات وواجهات برمجة التطبيقات "خدمات Google للأجهزة الجوّالة" (GMS) واستخدام علامة Android التجارية. يمكن لأي مستخدم استخدام رمز المصدر لنظام Android، ولكن لكي يُعتبر الجهاز جزءًا من نظام Android الأساسي، يجب أن يكون متوافقًا مع Android.
عنصر واحد ()
هو سجلّ مرتبط بالإصدار يتيح تحديد المشاكل وحلّها محليًا.
مستند تعريف معايير التوافق (CDD)
هو مستند يوضّح متطلبات البرامج والأجهزة لجهاز متوافق مع Android.
مجموعة أدوات اختبار التوافق (CTS)

هي حزمة اختبار تجارية مجانية، متاحة للتنزيل كبرنامج ثنائي أو كرمز مصدر في مشروع Android المفتوح المصدر (AOSP). وتتألف CTS من مجموعة من اختبارات الوحدات المصمّمة ليتم دمجها في سير عملك اليومي. والهدف من CTS هو الكشف عن حالات عدم التوافق والتأكّد من بقاء البرنامج متوافقًا طوال عملية التطوير.

لا يستبعد كلّ من اختبارات CTS واختبارات المنصة الآخر. في ما يلي بعض الإرشادات العامة:

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

هي مجموعة من تطبيقات Google وواجهات برمجة التطبيقات التي يمكن تثبيتها مسبقًا على الأجهزة.

GoogleTest (GTest)‎

هو إطار عمل للاختبار والمحاكاة بلغة C++‎. عادةً ما تصل الملفات الثنائية في GTest إلى طبقات تجريد منخفضة المستوى أو تُجري عملية اتصال بين العمليات (IPC) غير المعالجة مع خدمات النظام المختلفة. يرتبط أسلوب الاختبار في GTest عادةً بالخدمة التي يتم اختبارها. تحتوي CTS على إطار عمل GTest.

اختبار لقياس حالة التطبيق

هو بيئة خاصة لتنفيذ الاختبار يتم تشغيلها من خلال الأمر am instrument، حيث تتم إعادة تشغيل عملية التطبيق المستهدَف وتهيئتها باستخدام سياق التطبيق الأساسي، ويتم بدء سلسلة تعليمات لقياس حالة التطبيق داخل الجهاز الافتراضي لعملية التطبيق. تحتوي CTS على اختبارات لقياس حالة التطبيق.

Logcat

هي أداة سطر أوامر تُنشئ سجلًّا لرسائل النظام، بما في ذلك تتبُّع تسلسل استدعاء الدوال البرمجية عندما يعرض الجهاز خطأ والرسائل التي كتبتها من تطبيقك باستخدام فئة Log.

تسجيل الأحداث

هو استخدام سجلّ لتتبُّع أحداث نظام الكمبيوتر، مثل الأخطاء. يُعدّ تسجيل الأحداث في Android أمرًا معقدًا بسبب مزيج المعايير المستخدَمة التي يتم دمجها في أداة Logcat.

اختبار ما بعد الإرسال

هو اختبار Android يتم إجراؤه عند إرسال تصحيح جديد إلى فرع شائع في النواة. من خلال إدخال aosp_kernel كاسم فرع جزئي، يمكنك الاطّلاع على قائمة بفروع النواة التي تتوفّر نتائجها. على سبيل المثال، يمكن العثور على نتائج لـ android-mainline على الرابط https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid.

اختبار ما قبل الإرسال

هو اختبار يُستخدم لمنع حدوث حالات فشل في النواة الشائعة.

Trade Federation

يُعرف أيضًا باسم Tradefed، وهو إطار عمل للاختبار المستمر مصمّم لإجراء الاختبارات على أجهزة Android. على سبيل المثال، يتم استخدام Tradefed لإجراء اختبارات "مجموعة أدوات اختبار التوافق" و"مجموعة أدوات اختبار الأجهزة من المصنّع".

مجموعة أدوات اختبار الأجهزة من المصنّع (VTS)‎

هي مجموعة من الإمكانات الشاملة لاختبار Android، ما يعزّز عملية التطوير المستندة إلى الاختبار، ويؤدي إلى أتمتة اختبار طبقة تجريد الأجهزة (HAL) ونواة نظام التشغيل.

أنواع اختبارات المنصة

يتفاعل اختبار المنصة عادةً مع خدمة واحدة أو أكثر من خدمات نظام Android أو طبقات HAL، ويُجري وظائف العنصر الخاضع للاختبار، ويؤكّد صحة نتيجة الاختبار. قد يكون اختبار المنصة:

  • (النوع 1) إجراء واجهات برمجة تطبيقات الإطار باستخدام إطار عمل Android. يمكن أن تشمل واجهات برمجة التطبيقات المحدّدة التي يتم إجراؤها ما يلي:
    • واجهات برمجة التطبيقات العامة المخصّصة للتطبيقات الخارجية
    • واجهات برمجة التطبيقات المخفية المخصّصة للتطبيقات التي تتمتع بامتيازات، أي واجهات برمجة تطبيقات النظام أو واجهات برمجة التطبيقات الخاصة (@hide أو protected أو package private)
  • (النوع 2) استدعاء خدمات نظام Android باستخدام روابط غير معالجة أو وكلاء IPC مباشرةً
  • (النوع 3) التفاعل مباشرةً مع طبقات HAL باستخدام واجهات برمجة تطبيقات منخفضة المستوى أو واجهات IPC

عادةً ما تكون اختبارات النوعَين 1 و2 اختبارات لقياس حالة التطبيق، بينما تكون اختبارات النوع 3 عادةً اختبارات GTest.

ما هي الخطوات التالية؟

في ما يلي قائمة بالمستندات التي يمكنك قراءتها للحصول على معلومات أكثر تفصيلاً: