Набор тестов поставщика (VTS) и инфраструктура

Android Vendor Test Suite (VTS) позволяет проводить расширенное тестирование следующих компонентов:

  • Kernel
  • Уровень абстрагирования оборудования (HAL)

VTS запускается на компьютере и выполняет тестовые случаи непосредственно на подключенных устройствах или в эмуляторах. Как и CTS, VTS – это набор тестов с автоматизацией, в котором используются следующие основные компоненты программного обеспечения:

  • Платформа VTS Trade Federation тестовая программа запускается на хост-компьютере и управляет выполнением теста. Он позволяет настраивать сегментирование на нескольких тестируемых устройствах. Вы также можете использовать функцию Suite Retry, чтобы повторно запустить только те тесты, которые не удалось выполнить, а не весь набор тестов. Это значительно сокращает время повторного запуска.
  • Отдельные варианты тестирования выполняются на тестируемом устройстве. Тестовые случаи могут быть тестами в стиле GTest, тестами ядра или тестами в стиле JUnit, написанными на Java.

Типы тестирования

Различные типы тестов VTS описаны в следующих разделах.

Тесты в стиле GTest

Большинство тестов VTS – это тесты в стиле GTest, которые проверяют реализацию HAL. Тест написан на C++ и выполняется на устройстве. Обычно VTS GTest перебирает все экземпляры заданного интерфейса и выполняет для каждого из них все тестовые случаи. Пример приведен в разделе VtsHalHealthStorageV1_0TargetTest.

Тесты ядра Linux

  • Kselftest (external/linux-kselftest) – это набор тестов, включенных в репозиторий ядра Linux по адресу tools/testing/selftests. 23 из них входят в VTS и могут выполняться на устройствах ARM.

  • Проект тестирования Linux (external/ltp) позволяет проверить надежность, устойчивость и стабильность ядра Linux.

Тесты в стиле JUnit

Небольшой набор тестов VTS, управляемых хостом, выполнен в стиле JUnit, например KernelApiSysfsTest. Тесты Java реализованы как BaseHostJUnit4Test, который связан с тестовым устройством и может выполнять команды оболочки для проверки.

Отдельные тесты Python3

Некоторые тесты VTS, например vts_treble_sys_prop_test, написаны на Python 3. Тесты на основе Python реализованы как unittest.TestCase, и каждый тестовый случай может взаимодействовать с устройством с помощью команд оболочки.