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