Android 供应商测试套件 (VTS) 对以下内容提供了广泛的测试:
- 核心
- 硬件抽象层 (HAL)
VTS 在桌面计算机上运行,并直接在连接的设备或模拟器上执行测试用例。与CTS类似,VTS 是一个自动化测试套件,它使用以下主要软件组件。
- VTS Trade Federation测试工具在您的主机上运行并管理测试执行。它提供了跨多个被测设备 (DUT)配置分片的能力。您还可以使用套件重试功能仅重试失败的部分而不是整个测试套件,这大大减少了重新运行的时间。
- 单个测试用例在 DUT 上执行。测试用例可以是 gtest 风格的测试、内核测试或用 Java 编写的 JUnit 风格的测试。
测试类型
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
实现,它与测试设备相关联,可以运行 shell 命令来执行验证。
独立的 Python3 测试
一些 VTS 测试,例如vts_treble_sys_prop_test
是用 Python3 编写的。基于 Python 的测试作为unittest.TestCase
实现,每个测试用例都可以通过 shell 命令与设备交互。