يوفّر "المشروع المفتوح المصدر لنظام 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.
ما هي الخطوات التالية؟
في ما يلي قائمة بالمستندات التي يمكنك قراءتها للحصول على معلومات أكثر تفصيلاً:
إذا لم تدرس بنية Android، يمكنك الاطّلاع على نظرة عامة على البنية.
إذا كنت تُنشئ جهازًا متوافقًا مع Android، يمكنك الاطّلاع على نظرة عامة على برنامج التوافق مع Android.
لدمج اختبارات قياس حالة التطبيق والاختبارات الوظيفية واختبارات المقاييس واختبارات JAR على المضيف في خدمة اختبار مستمر للمنصة، يمكنك الاطّلاع على سير عمل تطوير الاختبار.
لاكتشاف الثغرات الأمنية في أجهزتك وتعزيز حمايتها منها، يمكنك الاطّلاع على اختبار الأمان.
للتعرّف على اختبار عمليات تنفيذ طبقة HAL والنواة، يمكنك الاطّلاع على مجموعة أدوات اختبار الأجهزة من المصنّع (VTS) والبنية الأساسية.
لاختبار التطبيقات، يمكنك قراءة أساسيات اختبار تطبيقات Android وإجراء اختبارات ميزات متقدمة على Android باستخدام لغة Kotlin 05.1:أساسيات الاختبار باستخدام النماذج المقدَّمة.
يمكنك التعرّف على اختبار ما قبل الإرسال الأساسي المتاح لك من خلال روابط repo. يمكن استخدام هذه الروابط لتشغيل أدوات التحقق من الأخطاء اللغوية والتحقق من التنسيق وتشغيل اختبارات الوحدات قبل المتابعة، مثل تحميل عملية إرسال. يتم إيقاف هذه الروابط تلقائيًا. لمزيد من المعلومات، يمكنك الاطّلاع على روابط ما قبل التحميل في AOSP Hooks.
لمزيد من المعلومات حول تسجيل الأحداث، يمكنك الاطّلاع على فهم تسجيل الأحداث.
لفهم كيفية تصحيح أخطاء رمز Android، يمكنك الاطّلاع على تصحيح أخطاء رمز نظام Android الأساسي الأصلي.