برنامج التوافق مع Android: هو الدافع الرئيسي للحفاظ على الملاحظات الإيجابية حول منظومة Android المتكاملة. إنّ CTS هي الأداة الرئيسية لضمان جودة التوافق على نطاق واسع. يواصل فريق Android تحسين أداة CTS واختبار التغطية. تساهم الإضافة المنتظمة لحالات الاختبار في تحسين جودة الأجهزة المتوافقة بشكل ملحوظ.
أسئلة عامة
يوفّر هذا القسم الأسئلة الشائعة العامة حول CTS.
ما هي أنواع الاختبارات التي يجريها CTS؟
تُجري CTS اختبارات تفيد بأنّ جميع واجهات برمجة التطبيقات المتوافقة مع الأنظمة المتوافقة مع Android متوفرة وتعمل بشكل صحيح. يختبر CTS أيضًا سلوكيات النظام الأخرى غير المتعلّقة بواجهة برمجة التطبيقات، مثل دورة حياة التطبيق وأدائه.
كيف يتم ترخيص CTS؟
وتم ترخيص CTS بموجب ترخيص برامج Apache 2.0 نفسه الذي يستخدمه الجزء الأكبر من نظام Android.
هل تتحقّق CTS من برامج الترميز؟
نعم. تتحقّق CTS من جميع برامج الترميز الإلزامية.
أسئلة خاصة بالاختبار
يوفّر هذا القسم الأسئلة الشائعة التي تساعد في إجراء اختبارات CTS بكفاءة أكبر.
ما الفرق بين تقسيم CTS وتقسيم TF؟
يعتبر تقسيم CTS إلى تقسيم وتقسيم TF إلى شرائح هما خطتا اختبار مختلفتان تمامًا تعتمدان على قاعدة رموز برمجية للبنية الأساسية التجريبية المختلفة. على الرغم من أنّ الأمر 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
ما الذي يجب توقّعه من جهاز يتوافق مع واجهات تطبيقات ثنائية متعدّدة (ABI)؟
يجب أن يجتاز الجهاز جميع اختبارات 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 (هذا الخيار غير متاح حتى الآن عند إعادة المحاولة)
- --retry-type فشلت
- --خطة فرعية
للحصول على حالة تمّت الوحدة (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 باستخدام تقسيم الرموز المميّزة.