إكمال اختبارات السيارات في صندوق

‫Complete Automotive Tests in a Box (CATBox) هي حزمة مفتوحة المصدر توفّر الأُطر والأدوات اللازمة لتبسيط اختبارات السيارات وتنفيذها بأقل قدر من الإعدادات. تتسم CATBox بقابلية التوسّع والتوافق مع الأدوات والبنية الأساسية والاختبارات التي تستخدمها لاختبار عمليات تنفيذ Android Automotive OS (AAOS) والتحقّق من صحتها. نتيجةً لذلك، يمكنك توفير منتجات عالية الجودة في السوق.

تصميم CATBox وتنفيذه

توفر حزمة اختبارات CATBox الأدوات وأُطر العمل والاختبارات اللازمة لتنفيذ اختبارات الوظائف والأداء على جهاز اختبار خاص بالسيارة وأثناء استخدام جهاز مصاحب.

توضّح الصورة التالية تصميمًا عالي المستوى لحزمة CATBox.

CATBox

الشكل 1: حزمة CATBox

Tradefed

‫Tradefed هو إطار عمل مفتوح المصدر للاختبار المستمر يُستخدم لتنفيذ الاختبارات على أجهزة Android. لمزيد من التفاصيل، يُرجى الاطّلاع على نظرة عامة على Trade Federation.

إطار عمل اختبار السيارات

تستند CATBox إلى إطار عمل اختبار Automotive يُسمى Spectatio، والذي يوفّر واجهات برمجة تطبيقات لاختبار مختلف التطبيقات على أجهزة Automotive. ويستند إلى UI Automator، وهو إطار عمل مفتوح المصدر للاختبار، يوفّر مجموعة من واجهات برمجة التطبيقات لإنشاء اختبارات واجهة المستخدم التي تتفاعل مع تطبيقات المستخدم والنظام.

تنزيل مجموعة اختبارات CATBox

Android 14

‫Android Automotive 14 هو إصدار من مرحلة التطوير التي تحمل الاسم الرمزي U. استخدِم الروابط التالية لتنزيل حِزم اختبار CATBox لنظام التشغيل Android 14:

Android 12

‫Android 12 هو إصدار من مرحلة التطوير الرئيسية التي تحمل الاسم الرمزي S. استخدِم الروابط التالية لتنزيل حِزم اختبار CATBox لنظام التشغيل Android 12:

Android 11

‫Android 11 هو إصدار من رمز مرحلة التطوير الذي يحمل الاسم الرمزي R. استخدِم الروابط التالية لتنزيل مجموعات اختبار CATBox لنظام التشغيل Android 11:

Build CATBox

استخدِم أمر الإنشاء catbox بعد توفّر رمز Android AOSP على محطة العمل المحلية.

لإنشاء حزمة CATBox محليًا، اتّبِع الخطوات التالية:

  1. اختَر "استهداف الجهاز" استنادًا إلى بنية الجهاز ونفِّذ الأمر التالي:

    lunch <target>
  2. لإنشاء CATBox، شغِّل الأمر التالي:

    make catbox

    ينشئ هذا الأمر الملف android-catbox.zip في الدليل /out/host/linux-x86/catbox، ويمكن استخدامه بعد ذلك لتنفيذ الاختبارات.

إعداد البيئة

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

إعداد CATBox وتشغيله

استخدِم إطار عمل الاختبار Tradefed لتشغيل الاختبارات على أجهزة Android. قبل إعداد CATBox، يُرجى الاطّلاع على نظرة عامة على Trade Federation.

لإعداد CATBox وتشغيله، يُرجى الاطّلاع على الأقسام أدناه.

إعداد الجهاز

قبل تنفيذ خطة اختبار، أكمِل الخطوات التالية لإعداد جهازك:

  1. تأكَّد من تثبيت أحدث إصدارات كل من Android Debug Bridge (adb) وأداة تجميع الموارد في Android (AAPT)، بالإضافة إلى إضافة موقع هاتين الأداتين إلى مسار النظام على جهازك. لمزيد من التفاصيل، يُرجى الاطّلاع على أداة تصحيح أخطاء Android (ADB) وأداة Android Asset Packaging Tool (AAPT).

  2. وصِّل جهازًا واحدًا على الأقل وأعِدّ الجهاز قيد الاختبار (DUT) باتّباع الخطوات التالية:

    1. لإعادة ضبط الجهاز المخصّص للسيارة على الإعدادات الأصلية، انتقِل إلى الإعدادات > النظام > خيارات إعادة الضبط > محو جميع البيانات.

    2. انتظِر إلى أن تتم إعادة تشغيل الجهاز تلقائيًا.

    3. تأكَّد من تفعيل تصحيح أخطاء adb. للتأكّد من توفّر الجهاز، شغِّل الأمر التالي:

      adb devices
    4. لتفعيل الجذر، شغِّل الأمر التالي:

      adb -s DEVICE_SERIAL root

      استبدِل DEVICE_SERIAL بمعرّف الرقم التسلسلي لجهاز السيارة.

    5. اتصِل بشبكة Wi-Fi.

استخراج حزمة CATBox

بعد إعداد الجهاز، فكّ ضغط حزمة CATBox وانتقِل إلى المجلد الذي تم استخراجه:

unzip android-catbox.zip
cd android-catbox

تنفيذ الاختبارات في CATBox

لتشغيل CATBox باستخدام خطط الاختبار في حزمة CATBox، اتّبِع الخطوات التالية:

./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL

استبدِل DEVICE_SERIAL بمعرّف الرقم التسلسلي لجهاز السيارة. إذا كانت لديك أجهزة متعددة متصلة بالجهاز المضيف، استخدِم DEVICE_SERIAL للتمييز بينها. استبدِل TEST_PLAN_NAME باسم خطة الاختبار التي تريد تنفيذها.

للحصول على قائمة كاملة بالخطط المتاحة، استخدِم سطر الأوامر:

./tools/catbox-tradefed list plans | grep -i catbox

أنواع خطط الاختبار

يعرض الجدول التالي خطط اختبار الوظائف المتاحة.

خطط الاختبار الوظيفي الوصف
catbox-functional الاختبارات الوظيفية
catbox-functional-app-info-setting اختبارات وظيفية لإعدادات معلومات التطبيقات
catbox-functional-admin-user-grant-permissions الاختبارات الوظيفية لمنح الأذونات لمستخدم مشرف
catbox-functional-app-info-setting-ui-elements اختبارات وظيفية لإعدادات معلومات التطبيقات
catbox-functional-appgrid الاختبارات الوظيفية لشبكة التطبيقات
catbox-functional-base قائمة الاختبارات الوظيفية
catbox-functional-bluetooth-audio الاختبارات الوظيفية للصوت عبر البلوتوث
catbox-functional-bluetooth-palette اختبارات وظيفية لشريط الحالة
catbox-functional-bluetooth-tests اختبارات البلوتوث باستخدام Mobly
catbox-functional-brightness-palette اختبارات وظيفية لشريط الحالة
catbox-functional-btmoped اختبارات وظيفية تستند إلى دراجة بخارية مزوّدة بتقنية البلوتوث
catbox-functional-date-time-setting اختبارات وظيفية لإعدادات التاريخ والوقت
catbox-functional-dial اختبارات وظائف الاتصال
catbox-functional-display-setting الاختبارات الوظيفية لإعدادات العرض
catbox-functional-driving-optimized-apps الاختبارات الوظيفية لقيود تجربة المستخدم
catbox-functional-enable-developers-option تفعيل اختبارات الوظائف لخيارات المطوّرين
catbox-functional-home الاختبارات الوظيفية المنزلية
catbox-functional-lock-screen اختبارات الوظائف على شاشة القفل
catbox-functional-mediacenter اختبارات وظائف "مركز الوسائط"
catbox-functional-microphone-recent-apps اختبارات وظيفية لإعدادات الميكروفون
catbox-functional-microphone-setting اختبارات وظيفية لإعدادات الميكروفون
catbox-functional-multiuser اختبارات وظيفية متعددة المستخدمين
catbox-functional-multiuser-system-user اختبارات وظيفية متعددة المستخدمين
catbox-functional-navigation-bar اختبارات وظيفية لشريط التنقّل
catbox-functional-network-palette اختبارات وظيفية لشريط الحالة
catbox-functional-network-setting الاختبارات الوظيفية لإعدادات الشبكة
catbox-functional-notification اختبارات وظائف الإشعارات
catbox-functional-privacy-permission-manager اختبارات وظيفية لإعدادات أذونات تطبيقات الخصوصية
catbox-functional-privacy-setting اختبارات وظيفية لإعدادات الميكروفون
catbox-functional-privacy-setting-ui-elements اختبارات وظيفية لإعدادات الخصوصية
catbox-functional-profile-icon اختبارات وظيفية لشريط رموز الملف الشخصي
catbox-functional-profiles-icon-list اختبارات قائمة رموز الملفات الشخصية
catbox-functional-security-setting الاختبارات الوظيفية لإعدادات الأمان
catbox-functional-setting ضبط الاختبارات الوظيفية
catbox-functional-settings-location اختبارات إعداد الموقع الجغرافي
catbox-functional-sound-setting اختبارات وظيفية لإعدادات الصوت
catbox-functional-status-bar اختبارات وظيفية لشريط الحالة
catbox-functional-storage-setting اختبارات وظيفية لإعدادات مساحة التخزين
catbox-functional-system-setting الاختبارات الوظيفية لإعدادات النظام
catbox-functional-systemui اختبارات واجهة مستخدم النظام
catbox-functional-ux-restriction الاختبارات الوظيفية لقيود تجربة المستخدم
catbox-functional-ux-restriction-facet-bar الاختبارات الوظيفية لقيود تجربة المستخدم

يسرد الجدول التالي خطط اختبار الأداء في CATBox.

خطط اختبار الأداء الوصف
catbox-performance-cold-app-start-up-dialer اختبار أداء بدء تشغيل تطبيقَي "طلب الهاتف" و"الهاتف" على البارد
catbox-performance-cold-app-start-up-mediacenter اختبار أداء بدء تشغيل التطبيق البارد لـ "مركز الوسائط"
catbox-performance-cold-app-start-up-settings اختبار أداء بدء تشغيل التطبيق البارد للإعدادات
catbox-performance-create-and-switch-to-new-guest قياس وقت الاستجابة للتبديل إلى ضيف جديد
catbox-performance-create-and-switch-to-new-user قياس وقت الاستجابة للتبديل إلى مستخدم جديد غير مشرف
catbox-performance-hot-app-start-up-dialer اختبار أداء بدء تشغيل التطبيقات السريع لتطبيقَي "طلب الهاتف" و"الهاتف"
catbox-performance-hot-app-start-up-mediacenter اختبار أداء بدء تشغيل التطبيق السريع لـ "مركز الوسائط"
catbox-performance-hot-app-start-up-settings اختبار أداء بدء تشغيل تطبيق "الإعدادات" السريع
catbox-performance-jank-appgrid اختبار الأداء لـ Appgrid
catbox-performance-jank-contact-list اختبار الأداء لتطبيق "جهات الاتصال"
catbox-performance-jank-media اختبارات الأداء للوسائط
catbox-performance-jank-media-switch-playback اختبار الأداء لتشغيل الوسائط والتبديل بينها
catbox-performance-jank-notifications اختبار الأداء للإشعارات
catbox-performance-jank-settings اختبار الأداء لتطبيق "الإعدادات"
catbox-performance-switch-to-existing-user قياس وقت الاستجابة للتبديل إلى مستخدم حالي

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

يستخدم تنفيذ الاختبارات على جانب المضيف على أجهزة متعددة CATBox لتشغيل الاختبار في جلسة واحدة. على سبيل المثال، BTDiscoveryTest:

make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTest

تثبِّت CATBox apk ثم يتم تشغيل الاختبار في بيئة تنفيذ Python الصحيحة.

مراجعة نتائج اختبار CATBox

يتم حفظ نتائج عمليات اختبار الأداء والوظائف في android-catbox/results/latest.

نوع النتيجة الموقع الجغرافي
نتائج الاختبار test_result.xml
تفاصيل اختبارات التعذُّر test_result_failures_suite.html
نتائج مقاييس الأداء /report-log-files/CatboxPerformanceTests.reportlog.json
عمليات تشغيل الاختبارات الوظيفية واختبارات الأداء /android-catbox/logs/latest