حزمة اختبار المورّد (VTS) والبنية الأساسية

توفّر مجموعة اختبارات المصنّعين لنظام التشغيل Android (VTS) اختبارًا شاملاً لما يلي:

  • Kernel
  • طبقة تجريد الأجهزة (HAL)

يتم تشغيل VTS على جهاز كمبيوتر مكتبي، وتنفيذ حالات الاختبار مباشرةً على الأجهزة المُرفَقة أو على المحاكيات. على غرار مجموعة أدوات اختبار التوافق (CTS)، فإنّ مجموعة أدوات اختبار الأداء هي مجموعة اختبارات مبرمَجة تستخدِم المكوّنات الرئيسية التالية للبرامج:

  • يتم تشغيل تسخير اختبار اتحاد تجاري VTS على الجهاز المضيف ويدير تنفيذ الاختبار. وتوفّر إمكانية ضبط التجزئة على مستوى أجهزة متعددة قيد الاختبار. يمكنك أيضًا استخدام ميزة إعادة محاولة تنفيذ الحزمة لإعادة محاولة تنفيذ الاختبارات التي تعذّر إكمالها فقط بدلاً من حِزم الاختبار بأكملها، ما يقلل بشكل كبير من وقت إعادة التشغيل.
  • يتم تنفيذ حالات الاختبار الفردية على DUT. ويمكن أن تكون حالات الاختبار: اختبارات بنمط GTest أو اختبارات kernel أو اختبارات بنمط JUnit مكتوبة في Java.

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

يمكن الاطّلاع على الأنواع المختلفة من اختبارات VTS في الأقسام التالية.

الاختبارات على غرار GTest

معظم الاختبارات في VTS هي اختبارات بنمط GTest تتحقّق من تنفيذ HAL. الاختبار مكتوب بلغة C++ ويتم تشغيله على الجهاز. يكرّر اختبار GTest النموذجي لفحص الأداء في الوقت الفعلي (VTS) كل مثيل لواجهة معيّنة، ويُجري جميع اختبارات التحقق منها. يمكنك الرجوع إلى VtsHalHealthStorageV1_0TargetTest للاطّلاع على مثال.

اختبارات نواة Linux

  • Kselftest (external/linux-kselftest) هي مجموعة من الاختبارات المضمّنة في مستودع نواة Linux في tools/testing/selftests، ومن بينها 23 اختبارًا مضمّنة في VTS لتشغيلها على ARM.

  • يهدف مشروع اختبار Linux (الإصدار الخارجي/ltp) إلى التحقّق من موثوقية وقوة واستقرار نواة Linux.

الاختبارات بأسلوب JUnit

مجموعة صغيرة من الاختبارات المستندة إلى المضيف في VTS هي اختبارات على غرار JUnit، على سبيل المثال، KernelApiSysfsTest. يتم تنفيذ اختبارات Java على هيئة BaseHostJUnit4Test، والتي تكون مرتبطة بجهاز اختبار ويمكنها تنفيذ أوامر ملف التمهيد لإجراء عملية التحقّق.

اختبارات Python3 المستقلة

بعض اختبارات VTS، مثل vts_treble_sys_prop_test مكتوبة بلغة Python3. يتم تنفيذ الاختبار ات المستندة إلى Python كـ unittest.TestCase ويمكن لكل حالة اختبار ة التفاعل مع الجهاز من خلال أوامر shell.