CTS 최적화

Android 호환성 테스트 모음(CTS)은 수백만 개의 개별 테스트를 제공합니다. 소프트웨어 개발 단계에서 CTS를 자주 실행해야 하지만 이러한 테스트를 실행하는 데 필요한 시간을 줄일 수 있습니다.

이 페이지에서는 테스트 실행 시간을 줄이는 데 사용할 수 있는 방법과 프로세스에 하드웨어 리소스를 최적화하는 방법을 설명합니다.

샤딩된 기기

주기를 줄이려면 여러 기기에서 CTS를 실행(샤딩)해 보세요. 샤딩을 사용하는 방법을 알아보려면 다음을 검토하세요. CTS 테스트를 실행합니다.

Android 테스트 스테이션

Android 테스트 스테이션(ATS)을 사용하여 사용자 인터페이스를 채택하고 표준 Android 테스트 모음을 실행합니다. 이 도구 웹 인터페이스 역할을 합니다. Trade Federation (TF) 일련의 테스트 기기에서도 최소한의 설정으로 CTS를 실행할 수 있습니다. 일정 수립을 위한 노력을 아끼지 않습니다

Android 테스트 스테이션은 단일 ATS 컨트롤러 호스트를 사용하여 여러 ATS 작업자 호스트에서 기기와 테스트를 관리할 수 있는 멀티 호스트 모드를 지원합니다.

에뮬레이터 연속 실행

개발 단계에서 CTS를 연속적으로 실행하려면 Android Virtual Device(AVD)를 하드웨어 대신 사용할 수 있습니다. 테스트 실패의 회귀는 초기에 발견되어 뿌리를 분류하고 분석하는 데 필요한 시간을 크게 절약했습니다. 있습니다. 에뮬레이터의 여러 인스턴스를 샤딩에 사용할 수 있으며 Android 테스트 스테이션에서 지속적으로 실행되도록 예약되어 있습니다.

drawElements 품질 프로그램(dEQP)

drawElements 품질 프로그램(dEQP)은 Android CTS에 포함되어 있습니다. CtsDepqTestCases라고 하는 이 프로그램은 살펴봤습니다. 이 모듈은 Android CTS의 모든 테스트 사례 중 거의 80%를 차지하며 총 실행 시간의 6%를 차지합니다.

Android 그래픽 드라이버는 Android 펌웨어 (BSP)의 일부이며 많은 변경사항을 적용할 수 있으므로 이 모듈을 전략적으로 접근해야 합니다 예를 들어 소프트웨어 개발 중에 2주마다(또는 그 미만으로) CTS를 실행하는 경우, 펌웨어 업데이트 일정에 따라 여러 주기 동안 이 모듈을 제외할 수 있습니다.

한 가지 방법은 여러 기기에서 CtsDeqpTestCases를 별도로 실행한 다음 CTS 보고서를 제출하는 것입니다. 예를 들어 서로 다른 두 호스트에서 이루어집니다.

호스트 1:

cts-tf > run cts --max-log-size 100 --shard-count 6 -o -m CtsDeqpTestCases

호스트 2:

cts-tf > run cts --max-log-size 100 --shard-count 6 -o --exclude-filter CtsDeqpTestCases

미디어 테스트 사례

미디어 테스트 사례는 오디오, 비디오, 멀티미디어 서비스와 같은 멀티미디어 서비스를 멀티미디어 드라이버입니다. 이러한 멀티미디어 테스트 모듈은 CTS 실행 시간에 가장 큰 영향을 미칩니다. 지연은 다음과 같은 경우에 발생할 수 있습니다.

  • 테스트 중에 미디어 파일을 다운로드하거나 미디어 파일을 반복적으로 재생
  • 실패한 테스트 사례를 다시 시도 중입니다.

Android CTS에는 다음 테스트 모듈이 포함되어 있습니다.

  • CtsMediaStressTestCases
  • CtsMediaPlayerTestCases
  • CtsMediaAudioTestCases
  • CtsVideoTestCases
  • CtsMediaDecoderTestCases
  • CtsMediaCodecTestCases
  • CtsMediaV2TestCases

일부 미디어 테스트를 로컬 또는 로컬 서버에서 실행하는 것을 고려해 보세요. 자세한 내용은 로컬에서 CTS 미디어 테스트 실행을 참고하세요.

멀티미디어 프레임워크와 드라이버 (디코더 및 인코더)는 펌웨어 (BSP)의 인스턴스입니다. 펌웨어 업데이트 일정에 따라 이 모듈을 전략적으로 실행하고 여러 주기 동안 이 모듈을 제외할 수 있습니다.