VTS(Vendor Test Suite) 및 인프라

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

  • 핵심
  • 하드웨어 추상화 계층(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 )는 tools/testing/selftests 의 Linux 커널 리포지토리에 포함된 테스트 모음입니다. 이 중 23개는 ARM에서 실행되는 VTS에 포함되어 있습니다.

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

JUnit 스타일 테스트

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

독립형 Python3 테스트

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