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

توفّر "مجموعة اختبارات المورّدين في Android" (VTS) اختبارات شاملة لما يلي:

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

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

  • تعمل أداة اختبار VTS اتحاد التجارة على الجهاز المضيف وتدير عملية تنفيذ الاختبار. تتيح هذه الميزة إمكانية ضبط التقسيم على أجهزة متعدّدة قيد الاختبار. يمكنك أيضًا استخدام ميزة إعادة المحاولة في الحزمة لإعادة محاولة تنفيذ الاختبارات التي تعذّر إجراؤها فقط بدلاً من إعادة تنفيذ حِزم الاختبارات بأكملها، ما يقلّل بشكل كبير من وقت إعادة التنفيذ.
  • يتم تنفيذ حالات الاختبار الفردية على الجهاز قيد الاختبار. يمكن أن تكون حالات الاختبار اختبارات بتنسيق GTest أو اختبارات نواة أو اختبارات بتنسيق 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 Test Project (external/ltp) من موثوقية نواة Linux وقوتها وثباتها.

الاختبارات المتوافقة مع JUnit

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

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

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