공급업체 테스트 모음(VTS) 및 인프라

Android 공급업체 테스트 모음(VTS)에서는 다음 항목에 관한 광범위한 테스트를 제공합니다.

  • 커널
  • 하드웨어 추상화 계층(HAL)

VTS는 데스크톱 컴퓨터에서 실행되며 연결된 기기나 에뮬레이터에서 직접 테스트 사례를 실행합니다. CTS와 마찬가지로, VTS는 다음과 같은 주요 소프트웨어 구성요소를 사용하는 자동화된 테스트 모음입니다.

  • VTS Trade Federation 테스트 하네스는 호스트 머신에서 실행되며 테스트 실행을 관리합니다. 여러 테스트 대상 기기(DUT)에서 샤딩을 구성할 수 있는 기능을 제공합니다. 또한 모음 재시도 기능을 사용하여 전체 테스트 모음이 아니라 실패한 테스트만 재시도할 수 있으며, 이로 인해 재실행 시간이 크게 줄어듭니다.
  • 개별 테스트 사례는 DUT에서 실행됩니다. 테스트 사례는 gtest 형식 테스트, 커널 테스트 또는 Java로 작성된 JUnit 형식 테스트일 수 있습니다.

테스트 유형

gtest 형식의 테스트

VTS의 테스트 대부분은 HAL 구현을 확인하는 gtest 형식의 테스트입니다. 테스트는 C++로 작성하며 기기에서 실행됩니다. 일반적인 VTS gtest는 지정된 인터페이스의 각 인스턴스를 통해 반복하고 인스턴스의 모든 테스트 사례를 실행합니다. 예는 VtsHalHealthStorageV1_0TargetTest를 참고하세요.

Linux 커널 테스트

  • Kselftest(external/linux-kselftest)는 tools/testing/selftests의 Linux 커널 저장소 내에 포함된 테스트 컬렉션으로, 23개의 테스트가 VTS에 포함되어 ARM에서 실행됩니다.

  • Linux 테스트 프로젝트(external/ltp) 테스트는 Linux 커널의 신뢰성, 견고성, 안정성을 검증합니다.

JUnit 형식의 테스트

VTS에서 호스트 기반의 소규모 테스트 집합은 JUnit 형식의 테스트입니다(예: KernelApiSysfsTest). Java 테스트는 BaseHostJUnit4Test로 구현되며, 이는 테스트 기기와 연결되고 유효성 검사를 실행하기 위해 셸 명령어를 실행할 수 있습니다.

독립형 Python3 테스트

vts_treble_sys_prop_test와 같은 일부 VTS 테스트는 Python3로 작성됩니다. Python 기반 테스트는 unittest.TestCase로 구현되며 각 테스트 사례는 셸 명령어를 통해 기기와 상호작용할 수 있습니다.