يشكّل برنامج التوافق مع Android العامل الرئيسي للحفاظ على الملاحظات الإيجابية حول منظومة Android المتكاملة. إنّ CTS هي الأداة الرئيسية لضمان جودة التوافق على نطاق واسع. يواصل فريق Android تحسين أداة CTS واختبار التغطية. أدّت إضافة اختبارات بشكل منتظم إلى تحسين جودة الأجهزة المتوافقة بشكل كبير.
أسئلة عامة
يوفّر هذا القسم الأسئلة الشائعة العامة حول ميزة "الاستجابة الذكية للطلبات".
ما هي أنواع الاختبارات التي يجريها CTS؟
يختبر CTS ما إذا كانت جميع واجهات برمجة التطبيقات المتوافقة من النوع الثابت في Android متوفّرة وتعمل بشكل صحيح. يختبر CTS أيضًا سلوكيات النظام الأخرى غير المتعلّقة بواجهة برمجة التطبيقات، مثل دورة حياة التطبيق وأدائه.
كيف يتم ترخيص CTS؟
تم ترخيص CTS بموجب ترخيص Apache Software License 2.0 نفسه الذي يستخدمه الجزء الأكبر من نظام التشغيل Android.
هل تتحقّق CTS من برامج الترميز؟
نعم. يُجري فريق CTS عمليات التحقّق من جميع برامج الترميز الإلزامية.
أسئلة خاصة بالاختبار
يوفّر هذا القسم أسئلة شائعة تساعد في إجراء اختبارات CTS بكفاءة أكبر.
ما الفرق بين تقسيم CTS وتقسيم TF؟
إنّ تقسيم CTS وتقسيم TF هما خطّتان مختلفتان تمامًا للاختبار تستخدِمان codebase مختلفًا لبنية الاختبار الأساسية. على الرغم من أنّ الأمر run هو نفسه في الإصدارات المختلفة، إلا أنّ نتيجة التجزئة تختلف. تُحدِّد ميزة "تقسيم مجموعة أدوات اختبار التوافق" حالات الاختبار بشكل ثابت للأجهزة التي يتم اختبارها (DUTs) على النحو التالي:
- الأمر: run cts
- الإعدادات لنظام التشغيل Android 8.1 والإصدارات الأقدم: /tools/cts-tradefed/res/config/cts.xml
تحدِّد ميزة "تقسيم TF" حالات الاختبار ديناميكيًا لأجهزة DUT المتاحة على النحو التالي:
- الأمر: run cts
- الإعدادات لنظام التشغيل Android 9: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
ما هو المطلوب من جهاز متوافق مع واجهات تطبيقات ثنائية متعددة؟
يجب أن يجتاز الجهاز جميع اختبارات CTS وCTS Verifier لكل وضع ABI يدعي اتّخاذه. لذلك، من الضروري تنفيذ تطبيق لملف ABI معيّن. في ما يلي إرشادات ABI المتعددة:
- بالنسبة إلى CTS وCTS Verifier، تتوفّر إصدارات ARM وx86 لكل بنية. ويمكن أن يتوافق كل منهما مع وضع 32 بت أو 64 بت.
- بالنسبة إلى اختبارات CTS، إذا كان الجهاز متوافقًا مع ARM وx86، يجب تشغيله اجتياز اختبارات CTS لكل من ARM وx86 على التوالي.
راجِع CDD 3.3.1. واجهات التطبيق الثنائية لمتطلبات CDD على ABI
هل يكفي إجراء اختبار على ABI الأساسي فقط (مثل 64 بت) لتقليل وقت تنفيذ الاختبار؟
لا، يعمل تطبيق Android على بيئة التشغيل الخاصة به بنظام 32 بت أو 64 بت. يختلف رمز الآلة الفعلي ومسار الرمز والحالة بين 32 و64. في حال تخطّي وضع واحد، لن تغطّي سوى% 50 من ABI للجهاز.
لماذا هناك الكثير من حالات الاختبار التي تم الإبلاغ عنها على أنّها "لم يتم تنفيذها"؟
يجب التحقّق من رقم تم إكمال الوحدة بدلاً من رقم لم يتم تنفيذه.
في الإصدارات السابقة، كان يتم تسجيل وحدات CTS على أنّها تم إكمال الوحدة بشكلٍ مفرط قبل اكتمالها. لذلك، تم الإبلاغ عن عدد الوحدات المكتملة بدون اكتمال جميع حالات الاختبار حتى عندما كانت بعض الأجهزة تواجه مشاكل. إنّ مجموعة الاختبار الجديدة أكثر تحفّظًا وتُبلغ عن عدد أكبر من الاختبارات غير المنفَّذة عند حدوث مشكلة.
عند تنفيذ وحدة إلى اكتمالها، يتم تسجيل الوحدة غير مكتملة في أحدث عملية تنفيذ (done="false") في التقرير خلال ما يلي:
- انقطعت عملية اختبار الوحدة بسبب مشكلة في اتصال الجهاز.
- لم يتم تنفيذ جميع عمليات الاختبار المتوقّعة للوحدة.
تم إعادة المحاولة (باستخدام الخيار
-r/--retry
) مع خيارات فلترة إضافية، مثل:- --include-filter
- --exclude-filter
- -t/--test (الخيار غير متاح بعد عند إعادة المحاولة)
- تعذّر تحديد نوع إعادة المحاولة
- --subplan
للحصول على حالة تم إكمال الوحدة (done="true") لهذه الوحدات، أعِد تنفيذ ما يلي لإجراء آخر عملية استدعاء:
run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions
إذا تم تنفيذ وحدة بدون أي من المشاكل المذكورة سابقًا (حتى إذا لم يكن هناك أي اختبارات متبقية)، يتم وضع علامة تم تنفيذ الوحدة في التقرير الجديد.
الاستثناءات
- هناك مشكلة معروفة في CtsNNAPITestCases بسبب قيود نظام التشغيل Linux/OS على الوسيطات.
يمكن إعادة تشغيل الوحدة بشكل منفصل من خلال
run cts -m CtsNNAPITestCases
مباشرةً.
كيف يمكنني تجنُّب تعذُّر إعداد الاختبار خلف جدار حماية الشركة؟
تحاول جميع مجموعات الاختبار المبرمَجة تنزيل ملفات وسائط CTS أوملفّات منطق الأعمال أثناء وقت التشغيل. في العديد من بيئات الشركات، يكون جدار الحماية والخادم الوكيل شائعين، ما يؤدي إلى تعذُّر إعداد الاختبار. نفِّذ السطر التالي أو أضفه إلى ملف .profile (على Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
هل أحتاج إلى شريحة SIM لاستخدام CTS لعنصر الأمان؟
يعتمد ما إذا كانت شريحة SIM مطلوبة لإجراء الاختبار على ما إذا كانت الميزة متوافقة مع جهاز الاختبار.
- إذا لم يكن جهازك بحاجة إلى إتاحة تطبيقات Android للوصول إلى
العناصر الآمنة، سواء في
UICC
(مثل شريحة SIM) التي يوزّعها مشغّلو شبكة الجوّال
(مشغّلو الشبكات) أو المضمّنة في الجهاز، يمكنك ضبط بيان HIDL
لعدم تضمين عنصر
android.hardware.secure_element
HAL . في هذه الحالة، تُبلغ واجهة برمجة التطبيقات android.se.omapi.SEService.getReaders() عن قائمة فارغة ويجتاز اختبار CTS تلقائيًا ويُبلغ عن اجتياز اختبار CTS. - إذا كان جهازك يحتاج إلى إتاحة تطبيقات Android للوصول إلى ملف تعريف مستخدم في أحد العناصر الآتية: العناصر الآمنة، سواء في شريحة UICC (مثل شريحة SIM) التي يوزّعها مشغّلو شبكات الجوّال أو العناصر المضمّنة في الجهاز، عليك تنفيذ العنصر الآمن بشكل صحيح واختباره داخليًا. يوضّح مقالة اختبار CTS للعنصر الآمن كيفية الاستعداد لإجراء اختبارات CTS التي تضمن صحة حزمة واجهة برمجة التطبيقات android.se.omapi المُضافة في Android 9. ننصحك أيضًا بإجراء اختبارات إضافية بنفسك لأنّ تغطية اختبار CTS محدودة.
أين يمكنني الحصول على شرائح SIM لاختبار CTS لوحدة الأمان؟
يمكنك التواصل مع موفِّر شرائح SIM المفضّل لديك.
لماذا تظهر شريحة SIM من Orange على شاشة القفل أثناء تنفيذ CTS مع تجزئة الرمز المميّز؟
لا يبدأ نموذج الاختبار لأنّ اختبار شريحة SIM غير متاح بسبب قفلها. أوقِف ميزة قفل شريحة SIM في **إعدادات قفل شريحة SIM قبل تنفيذ CTS باستخدام تقسيم الرموز المميّزة.