يشكّل برنامج التوافق مع Android العامل الرئيسي للحفاظ على الملاحظات الإيجابية حول منظومة Android المتكاملة. إنّ CTS هي الأداة الرئيسية لضمان جودة التوافق على نطاق واسع. تشير رسالة الأشكال البيانية يواصل فريق Android تحسين أداة CTS وتغطية الاختبارات. أدّت إضافة اختبارات بشكل منتظم إلى تحسين جودة الأجهزة المتوافقة بشكل كبير.
أسئلة عامة
يوفّر هذا القسم الأسئلة الشائعة العامة حول CTS.
ما هي أنواع الاختبارات التي يجريها CTS؟
تختبر CTS نجاح جميع واجهات برمجة التطبيقات المصممة بشكل قوي في نظام التشغيل Android موجودة وتتصرف بشكل صحيح. يختبر CTS أيضًا سلوكيات النظام الأخرى غير المتعلّقة بواجهة برمجة التطبيقات، مثل دورة حياة التطبيق وأدائه.
كيف يتم ترخيص CTS؟
تم ترخيص CTS بموجب ترخيص برامج Apache نفسه، الإصدار 2.0 الذي تسمح له الجزء الأكبر من استخدامات Android.
هل تتحقّق CTS من برامج الترميز؟
نعم. تتحقّق CTS من جميع برامج الترميز الإلزامية.
أسئلة خاصة بالاختبار
يوفّر هذا القسم أسئلة شائعة تساعد في إجراء اختبارات CTS بكفاءة أكبر.
ما الفرق بين التجزئة إلى أجزاء CTS والتقسيم إلى أجزاء TF؟
إنّ تقسيم CTS وتقسيم TF هما خطّتان مختلفتان تمامًا للاختبار تستخدِمان codebase مختلفًا لبنية الاختبار الأساسية. في حين أن أمر run هو أمر ونفس الشيء عبر الإصدارات المختلفة، فإن نتيجة التقسيم بشكل مختلف. تُحدِّد ميزة "تقسيم مجموعة أدوات اختبار التوافق" حالات الاختبار بشكل ثابت للأجهزة التي يتم اختبارها (DUTs) على النحو التالي:
- الأمر: run cts
- إعدادات الإصدار 8.1 من نظام Android والإصدارات الأقدم: /tools/cts-tradefed/res/config/cts.xml
إنّ تقسيم TF إلى شرائح يعيّن بشكل ديناميكي حالات الاختبار إلى DUTs المتاحين على النحو التالي:
- الأمر: 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 على التوالي.
راجِع الإصدار 3.3.1 من "CDD". واجهات التطبيق الثنائية لمتطلبات 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
البيان بحيث لا يتضمن HAL
android.hardware.secure_element
العنصر. وفي هذه الحالة، android.se.omapi.SEService.getReaders() تعرض واجهة برمجة التطبيقات قائمة فارغة واختبار CTS تلقائيًا يجتاز ويرسل تقرير عن بطاقة CTS. - إذا كان جهازك يحتاج إلى السماح لتطبيقات Android بالوصول إلى أي مما يلي: من العناصر الآمنة، سواء في UICC (مثل شريحة SIM) يتم توزيعها من خلال مشغّلي شبكة الجوّال (مشغِّلي شبكات الجوّال) أو إذا كنت مضمّنًا في الجهاز، ستحتاج إلى تنفيذ عنصر آمن بشكل صحيح واختباره داخليًا. اختبار CTS للعنصر الآمن توضح كيفية الاستعداد لإجراء اختبارات CTS التي تضمن android.se.omapi حزمة واجهة برمجة التطبيقات التي تمت إضافتها في Android 9 تعمل. ننصح أيضًا إجراء اختبار إضافي بنفسك منذ تغطية اختبار CTS ضئيل.
أين يمكنني الحصول على شرائح SIM الخاصة بـ CTS للعنصر الآمن؟
يمكنك التواصل مع مورّد شرائح SIM المفضّل لديك.
لماذا تظهر شريحة SIM البرتقالية على شاشة القفل أثناء تنفيذ CTS مع تقسيم الرمز المميّز إلى أجزاء؟
لا يبدأ نموذج الاختبار لأنّ اختبار شريحة SIM غير متاح بسبب قفلها. أوقِف ميزة قفل شريحة SIM في **إعدادات قفل شريحة SIM قبل تنفيذ CTS باستخدام تقسيم الرموز المميّزة.