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

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

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

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

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

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

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

آزمون‌های سبک GTest

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

تست‌های هسته لینوکس

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

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

تست‌های به سبک JUnit

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

تست‌های مستقل پایتون ۳

برخی از تست‌های VTS، مانند vts_treble_sys_prop_test با پایتون ۳ نوشته شده‌اند. تست‌های مبتنی بر پایتون به صورت unittest.TestCase پیاده‌سازی می‌شوند و هر تست کیس می‌تواند از طریق دستورات shell با دستگاه تعامل داشته باشد.