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

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

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

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

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

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

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

GoogleTest ‏ (GTest)

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

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

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

Logcat

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

تسجيل الدخول

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

postsubmit test

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

اختبار التقديم المُسبَق

اختبار يُستخدَم لمنع حدوث أعطال في ملفّات kernel المشترَكة

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

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

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

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

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

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

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

عادةً ما تكون اختبارات النوعَين 1 و2 هي اختبارات الأدوات، في حين تكون اختبارات النوع 3 عادةً هي اختبارات GTests.

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

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