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

‫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)، بالإضافة إلى إضافة موقع هاتين الأداتين إلى مسار النظام على جهازك. لمزيد من التفاصيل، يُرجى الاطّلاع على ADB و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 اختبارات الأداء في 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