CTS 최적화

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

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

기기 샤딩

주기 시간을 줄이려면 여러 기기에서 CTS를 실행하는 것이 좋습니다(샤딩). 샤딩 사용 방법을 보려면 CTS 테스트 실행을 참고하세요.

Android 테스트 스테이션

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

Android 테스트 스테이션은 멀티 호스트 모드를 지원하므로 이를 사용하면 여러 ATS worker 호스트에서 기기와 테스트를 관리하는 데 단일 ATS 컨트롤러 호스트를 사용할 수 있습니다.

에뮬레이터 연속 실행

개발 단계에서 CTS를 연속적으로 실행하려면 Android Virtual Device(AVD)를 하드웨어 대신 사용할 수 있습니다. 테스트 실패 회귀를 조기에 식별할 수 있으므로 근본 원인을 분류하고 분석하는 데 필요한 시간이 많이 단축됩니다. 에뮬레이터의 여러 인스턴스는 샤딩에 사용할 수 있으며 Android 테스트 스테이션에서 연속 실행되도록 예약할 수 있습니다.

drawElements 품질 프로그램(dEQP)

drawElements 품질 프로그램(dEQP)은 Android CTS에 포함되어 있습니다. CtsDepqTestCases라는 이 프로그램은 Android 그래픽의 테스트 적용 범위에 중점을 둡니다. 이 모듈은 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 미디어 테스트 실행을 참고하세요.

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