مجموعه آزمایش فروشنده (VTS) و زیرساخت

«مجموعه آزمایشی فروشنده Android»‏ (VTS) آزمایش‌های گسترده‌ای را روی موارد زیر ارائه می‌دهد:

  • مرکزی
  • لایه انتزاع سخت‌افزار (HAL)

VTS روی رایانه اجرا می‌شود و چارچوب‌های تست را مستقیماً روی دستگاه‌های متصل یا شبیه‌سازها اجرا می‌کند. VTS مشابه CTS است، مجموعه آزمایش خودکاری که از مؤلفه‌های نرم‌افزاری اصلی زیر استفاده می‌کند:

  • مهار آزمون VTS فدراسیون تجارت روی ماشین میزبان شما اجرا می‌شود و اجرای آزمون را مدیریت می‌کند. این ویژگی امکان پیکربندی تکه‌تکه کردن در چندین دستگاه تحت آزمایش (DUT) را فراهم می‌کند. همچنین می‌توانید از ویژگی Suite Retry (تلاش مجدد مجموعه) استفاده کنید تا به‌جای کل مجموعه‌های آزمایش، فقط موارد ناموفق را دوباره امتحان کنید، که زمان اجرای مجدد را به‌شدت کاهش می‌دهد.
  • موارد آزمون فردی در DUT اجرا می‌شوند. چارچوب‌های تست می‌توانند تست‌های سبک GTest، تست‌های هسته، یا تست‌های سبک JUnit باشند که به زبان Java نوشته شده‌اند.

انواع آزمایش‌ها

انواع مختلف آزمایش‌های VTS در بخش‌های زیر شرح داده شده است.

آزمایش‌های سبک GTest

بیشتر آزمایش‌های VTS آزمایش‌های سبک GTest هستند که پیاده‌سازی HAL را بررسی می‌کنند. این آزمایش به زبان C++‎ نوشته شده است و در دستگاه اجرا می‌شود. ‫VTS GTest معمولاً هر نمونه از یک میانای معین را تکرار می‌کند و همه موارد آزمون را دربرابر آن اجرا می‌کند. برای مثال، به VtsHalHealthStorageV1_0TargetTest مراجعه کنید.

آزمایش‌های هسته Linux

  • Kselftest (external/linux-kselftest) مجموعه‌ای از آزمایش‌ها است که در مخزن هسته Linux در tools/testing/selftests گنجانده شده است و ۲۳ مورد از آن‌ها در VTS برای اجرا در ARM گنجانده شده است.

  • پروژه آزمایشی Linux (external/ltp) آزمایش‌ها قابلیت اطمینان، استحکام، و پایداری هسته Linux را تأیید می‌کنند.

آزمایش‌های سبک JUnit

مجموعه کوچکی از آزمایش‌های میزبان‌محور در VTS آزمایش‌های سبک JUnit هستند، برای مثال، KernelApiSysfsTest. آزمایش‌های Java به‌صورت BaseHostJUnit4Test پیاده‌سازی می‌شوند، که با دستگاه آزمایشی مرتبط است و می‌تواند دستورات پوسته را برای انجام اعتبارسنجی اجرا کند.

آزمایش‌های مستقل Python3

برخی‌از آزمایش‌های VTS، مثل vts_treble_sys_prop_test به زبان Python3 نوشته شده‌اند. آزمایش‌های مبتنی بر Python به‌صورت unittest.TestCase پیاده‌سازی می‌شوند و هر مورد آزمایش می‌تواند ازطریق فرمان‌های پوسته با دستگاه تعامل داشته باشد.