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

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

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

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

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

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

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

GoogleTest (GTest)

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

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

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

Logcat

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

تسجيل البيانات

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

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

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

اختبار ما قبل الإصدار

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

اتحاد التجارة

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

مجموعة اختبارات المورّدين (VTS)

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

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

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

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

تكون الاختبارات من النوع 1 والنوع 2 عادةً اختبارات أدوات، بينما تكون الاختبارات من النوع 3 عادةً اختبارات GTest.

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

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