الأسئلة الشائعة حول CTS

برنامج التوافق مع Android هو المحرّك الأساسي للحفاظ على الملاحظات الإيجابية بشأن منظومة Android المتكاملة. ويُعد اختبار التوافق (CTS) الأداة الرئيسية لضمان جودة التوافق على نطاق واسع. يواصل فريق Android تحسين أداة CTS وتغطية الاختبار. تؤدي إضافة حالات الاختبار بانتظام إلى تحسين جودة الأجهزة المتوافقة بشكل كبير.

أسئلة عامة

يتضمّن هذا القسم الأسئلة الشائعة العامة حول CTS.

ما هي أنواع العناصر التي يختبرها CTS؟

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

كيف يتم ترخيص مجموعة أدوات اختبار التوافق (CTS)؟

تم الترخيص لمجموعة أدوات اختبار التوافق (CTS) بموجب ترخيص Apache Software License 2.0 نفسه الذي يستخدمه الجزء الأكبر من نظام Android.

هل يتم التحقّق من برامج الترميز من خلال اختبار التوافق مع نظام Android؟

نعم. يتم التحقّق من صحة جميع برامج الترميز الإلزامية من خلال مجموعة اختبار التوافق (CTS).

أسئلة خاصة بالاختبار

يقدّم هذا القسم أسئلة شائعة تساعد في إجراء اختبارات CTS بكفاءة أكبر.

ما الفرق بين تقسيم CTS وتقسيم TF؟

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

تُعيِّن TF Sharding حالات الاختبار ديناميكيًا إلى الأجهزة المتاحة على النحو التالي:

ما هو المتوقّع من جهاز يتيح استخدام واجهات تطبيق ثنائية متعددة؟

ويجب أن يجتاز الجهاز جميع اختبارات مجموعة أدوات اختبار التوافق (CTS) وأداة CTS Verifier لكل وضع من أوضاع واجهة التطبيق الثنائية (ABI) التي يدّعي الجهاز أنّه يتيحها. لذلك، من الضروري تنفيذ تطبيق لواجهات التطبيق الثنائية (ABI) المحدّدة. في ما يلي إرشادات حول واجهات التطبيق الثنائية المتعددة:

  • بالنسبة إلى CTS وCTS Verifier، تتوفّر إصدارات ARM وx86 لكل بنية. ويمكن لكل منهما دعم وضع 32 أو 64 بت.
  • بالنسبة إلى اختبارات CTS، إذا كان الجهاز متوافقًا مع كل من ARM وx86، يجب أن يجتاز اختبارات CTS لكل من ARM وx86 على التوالي.

راجِع القسم 3.3.1 من مستند تعريف معايير التوافق (CDD). واجهات التطبيق الثنائية لمتطلبات CDD بشأن واجهة التطبيق الثنائية

هل يكفي إجراء اختبار على واجهة التطبيق الثنائية الأساسية فقط (مثل 64 بت) لتقليل وقت تنفيذ الاختبار؟

لا، يعمل تطبيق Android على أوقات تشغيل 32 بت أو 64 بت الخاصة به. يختلف رمز الآلة الفعلي ومسار الرمز والحالة بين 32 و64. في حال تخطّي أحد الأوضاع، لن يتم تغطية سوى% 50 من واجهة التطبيق الثنائية (ABI) للجهاز.

لماذا يتم الإبلاغ عن العديد من حالات الاختبار على أنّها "لم يتم تنفيذها"؟

عليك التحقّق من عدد الوحدات المكتملة بدلاً من عدد الوحدات التي لم يتم تنفيذها.

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

يُبلغ تشغيل الوحدة حتى الاكتمال عن لم يتم تنفيذ الوحدة في أحدث استدعاء (done="false") في التقرير أثناء ما يلي:

  • تمت مقاطعة تشغيل تجريبي للوحدة بسبب مشكلة في اتصال الجهاز.
  • لم يتم تنفيذ جميع عمليات الاختبار المتوقّعة للوحدة.
  • أعدنا المحاولة (باستخدام الخيار -r/--retry) مع خيارات فلترة إضافية، مثل:

    • --include-filter
    • --exclude-filter
    • ‎-t/--test (لم يتوفّر الخيار بعد عند إعادة المحاولة)
    • --retry-type failed
    • --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 لاختبار التوافق مع نظام Android من أجل "العنصر الآمن"؟

يعتمد ما إذا كانت شريحة SIM مطلوبة للاختبار على ما إذا كانت الميزة متوافقة مع جهاز الاختبار.

  • إذا كان جهازك لا يحتاج إلى أن يكون متوافقًا مع تطبيقات Android التي يمكنها الوصول إلى العناصر الآمنة، سواء في UICC (مثل شريحة SIM) التي يوزّعها مشغّلو شبكات الجوّال (شركات الاتصالات) أو المضمّنة في الجهاز، يمكنك ضبط ملف HIDL لعدم تضمين عنصر android.hardware.secure_element HAL. في هذه الحالة، تعرض واجهة برمجة التطبيقات android.se.omapi.SEService.getReaders() قائمة فارغة، ويجتاز اختبار CTS تلقائيًا ويُبلغ عن اجتيازه.
  • إذا كان جهازك يحتاج إلى إتاحة وصول تطبيقات Android إلى العناصر الآمنة، سواء في UICC (مثل شريحة SIM) التي يوزّعها مشغّلو شبكة الجوّال (شركات الاتصالات) أو المضمّنة في الجهاز، عليك تنفيذ العنصر الآمن بشكل صحيح واختباره داخليًا. توضّح اختبارات مجموعة أدوات اختبار التوافق (CTS) للعنصر الآمن كيفية الاستعداد لتشغيل اختبارات مجموعة أدوات اختبار التوافق التي تضمن عمل حزمة واجهة برمجة التطبيقات android.se.omapi التي تمت إضافتها في Android 9. ننصحك أيضًا بإجراء اختبارات إضافية بنفسك لأنّ تغطية اختبارات CTS محدودة.

أين يمكنني الحصول على شرائح SIM لاختبار التوافق مع نظام التشغيل Android (CTS) للعنصر الآمن؟

يمكنك التواصل مع بائع شرائح SIM المفضّل لديك.

لماذا تظهر شريحة SIM من Orange على شاشة القفل أثناء تنفيذ اختبار التوافق مع نظام التشغيل (CTS) باستخدام تقسيم الرمز المميّز؟

لا تبدأ حالة الاختبار لأنّ اختبار شريحة SIM مؤمّن. أوقِف خيار قفل شريحة SIM في **إعدادات قفل شريحة SIM قبل تنفيذ اختبار التوافق مع نظام التشغيل Android (CTS) باستخدام تجزئة الرموز المميزة.

يتم إجراء الاختبار عند إيقاف علامات الميزات في الجهاز

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