VTS(Vendor Test Suite) 및 인프라

Android Vendor Test Suite(VTS)는 다음에 대한 광범위한 테스트를 제공합니다.

  • 핵심
  • HAL(하드웨어 추상화 계층)

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

  • VTS Trade Federation 테스트 하네스는 호스트 시스템에서 실행되며 테스트 실행을 관리합니다. 테스트 중인 여러 장치(DUT)에서 샤딩을 구성하는 기능을 제공합니다. 또한 스위트 재시도 기능을 사용하여 전체 테스트 스위트가 아닌 실패만 재시도하여 재실행 시간을 크게 줄일 수 있습니다.
  • 개별 테스트 사례는 DUT에서 실행됩니다. 테스트 사례는 gtest 스타일 테스트, 커널 테스트 또는 Java로 작성된 JUnit 스타일 테스트일 수 있습니다.

테스트 유형

gtest 스타일 테스트

VTS의 대부분의 테스트는 HAL 구현을 확인하는 gtest 스타일 테스트입니다. 테스트는 C++로 작성되었으며 장치에서 실행됩니다. 일반적인 VTS gtest는 지정된 인터페이스의 각 인스턴스를 반복하고 이에 대해 모든 테스트 사례를 실행합니다. 예제는 VtsHalHealthStorageV1_0TargetTest 참조하십시오.

리눅스 커널 테스트

  • Kselftest( external/linux-kselftest )는 Linux 커널 저장소 tools/testing/selftests 에 포함된 테스트 모음이며, 그 중 23개는 VTS에 포함되어 ARM에서 실행됩니다.

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

JUnit 스타일 테스트

VTS의 소규모 호스트 기반 테스트 세트는 JUnit 스타일 테스트(예: KernelApiSysfsTest 입니다. Java 테스트는 BaseHostJUnit4Test 로 구현되며 테스트 장치와 연결되고 셸 명령을 실행하여 유효성 검사를 수행할 수 있습니다.

독립 실행형 Python3 테스트

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