Vendor Test Suite (VTS) и инфраструктура

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

  • Ядро
  • Уровень аппаратной абстракции (HAL)

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

  • Тестовая среда VTS Trade Federation работает на вашем хост-компьютере и управляет выполнением тестов. Она позволяет настраивать шардинг на нескольких тестируемых устройствах (DUT). Вы также можете использовать функцию повторного запуска 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 Test Project ( внешние/ltp ) проверяют надежность, устойчивость и стабильность ядра Linux.

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

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

Автономные тесты Python3

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