Набор тестов поставщика Android 11 (VTS) обеспечивает обширное тестирование по следующим параметрам:
- ядро
- Уровень аппаратной абстракции (HAL)
VTS работает на настольном компьютере и выполняет тестовые сценарии непосредственно на подключенных устройствах или на эмуляторах. Подобно CTS , VTS представляет собой набор автоматизированных тестов, в котором используются следующие основные программные компоненты.
- Тестовая система VTS Trade Federation запускается на вашем хост-компьютере и управляет выполнением тестов. Он предлагает возможность настройки разделения на нескольких тестируемых устройствах (DUT). Вы также можете использовать функцию Suite Retry , чтобы повторить только неудачные тесты, а не все наборы тестов, что значительно сокращает время повторного запуска.
- Отдельные тестовые примеры выполняются на тестируемом устройстве. Тестовые случаи могут быть тестами в стиле gtest, тестами ядра или тестами в стиле JUnit, написанными на Java.
Типы тестов
тесты в стиле gtest
Большинство тестов в VTS — это тесты в стиле gtest, которые проверяют реализацию HAL. Тест написан на C++ и запускается на устройстве. Типичный gtest VTS выполняет итерацию по каждому экземпляру данного интерфейса и запускает все тестовые примеры для него. См. пример в 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
, и каждый тестовый пример может взаимодействовать с устройством через команды оболочки.