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 ( external/ltp ) проверяют надежность, устойчивость и стабильность ядра Linux.

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

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

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

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