Android Vendor Test Suite (VTS) обеспечивает обширное тестирование по следующим направлениям:
- Ядро
- Уровень аппаратной абстракции (HAL)
VTS работает на настольном компьютере и выполняет тестовые случаи непосредственно на подключенных устройствах или на эмуляторах. Подобно CTS , VTS представляет собой автоматизированный тестовый набор, который использует следующие основные программные компоненты:
- Тестовая система VTS Trade Federation запускается на вашем хост-компьютере и управляет выполнением теста. Она предлагает возможность настройки сегментации на нескольких тестируемых устройствах (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
, из которых 23 включены в VTS для запуска на ARM.Тесты Linux Test Project ( внешние/ltp ) проверяют надежность, устойчивость и стабильность ядра Linux.
Тесты в стиле JUnit
Небольшой набор тестов, управляемых хостом в VTS, — это тесты в стиле JUnit, например, KernelApiSysfsTest
. Тесты Java реализованы как BaseHostJUnit4Test
, который связан с тестовым устройством и может запускать команды оболочки для выполнения проверки.
Автономные тесты Python3
Некоторые тесты VTS, такие как vts_treble_sys_prop_test
, написаны на Python3. Тесты на основе Python реализованы как unittest.TestCase
, и каждый тестовый случай может взаимодействовать с устройством через команды оболочки.