CTS FAQ

Android 호환성 프로그램은 Android 생태계에 관한 긍정적인 의견을 유지하기 위한 핵심 동인입니다. CTS는 규모에 따라 호환성 품질을 보장해 주는 핵심 도구입니다. Android팀은 CTS 도구와 테스트 적용 범위를 지속적으로 개선하고 있습니다. 테스트 사례가 정기적으로 추가되면 호환 기기의 품질이 크게 향상됩니다.

일반적인 질문

이 섹션에서는 일반적인 CTS 관련 자주 묻는 질문(FAQ)을 제공합니다.

CTS는 어떤 종류의 테스트를 하나요?

CTS는 지원되는 Android의 엄격한 API가 모두 존재하고 올바르게 작동하는지 테스트합니다. 또한 앱 수명 주기 및 성능과 같은 기타 비 API 시스템 동작을 테스트합니다.

CTS는 어떻게 라이선스가 부여되나요?

CTS는 Android의 대부분이 사용하는 것과 동일한 Apache Software License 2.0에 따라 라이선스가 부여됩니다.

코덱이 CTS에서 인증되었나요?

예. 모든 필수 코덱은 CTS에서 인증되었습니다.

테스트별 질문

이 섹션은 CTS 테스트를 더 효율적으로 실행하는 데 도움이 되는 자주 묻는 질문(FAQ)을 제공합니다.

CTS 샤딩과 TF 샤딩의 차이점은 무엇인가요?

CTS 샤딩과 TF 샤딩은 서로 다른 테스트 인프라 코드베이스로 진행되는 완전히 다른 테스트 계획입니다. 실행 명령어는 버전마다 동일하지만 샤딩 결과가 다르게 작동합니다. CTS 샤딩은 다음과 같이 DUT(테스트 대상 기기)에 테스트 사례를 정적으로 할당합니다.

TF 샤딩은 다음과 같이 사용 가능한 DUT에 테스트 사례를 동적으로 할당합니다.

다중 ABI를 지원하는 기기에서는 어떻게 해야 하나요?

다중 ABI를 지원하는 기기에서는 지원한다고 주장하는 ABI 모드마다 모든 CTS 및 CTS 인증 도구의 테스트를 통과해야 합니다. 따라서 특정 ABI를 위한 앱을 실행해야 합니다. 다중 ABI에 관한 가이드는 다음과 같습니다.

  • CTS 및 CTS 인증 도구에는 각 아키텍처용 ARM 및 x86 출시가 있습니다. 이들은 각각 32비트 또는 64비트 모드를 지원할 수 있습니다.
  • ARM와 x86을 모두 지원하는 기기는 CTS 테스트에서 ARM과 x86 CTS 테스트를 각각 실행하고 통과해야 합니다.

ABI의 CDD 요구사항을 위한 CDD 3.3.1. Application Binary Interface를 참고하세요.

테스트 실행 시간 단축을 위해 기본 ABI(예: 64비트)에서만 테스트를 실행해도 되나요?

아니요. Android 앱은 자체 32비트 또는 64비트 런타임에서 실행됩니다. 32비트와 64비트 간에 실제 기계어 코드, 코드 경로, 상태는 서로 다릅니다. 한 가지 모드를 건너뛰면 기기 ABI의 50%만 처리한 것이 됩니다.

실행되지 않음으로 보고된 테스트 사례가 너무 많은 이유는 무엇인가요?

실행되지 않음의 수 대신 완료된 모듈의 수를 확인해야 합니다.

이전 버전에서 CTS 모듈은 완료되기도 전에 너무 적극적으로 완료된 모듈로 보고되었습니다. 이러한 이유로 기기에 문제가 발생해도 일부 테스트 사례가 완료되지 않은 상태에서 완료된 모듈의 수가 보고되었습니다. 새로운 테스트 하네스는 좀 더 보수적이며 문제가 발생하면 실행되지 않음 테스트를 더 많이 보고합니다.

실행이 완료된 모듈이라도 다음 동작이 발생한 경우 최근 호출(done="false")에서 완료되지 않은 모듈을 보고합니다.

  • 모듈을 대상으로 한 테스트 실행이 기기 연결 문제로 중단됨
  • 모듈에 필요한 일부 테스트가 실행되지 않음
  • 다음과 같은 추가 필터링 옵션으로 재시도됨(-r/--retry 옵션 사용)

    • --include-filter
    • --exclude-filter
    • -t/--test(재시도 시 아직 지원되지 않는 옵션)
    • --retry-type failed
    • --subplan

이러한 모듈에 완료된 모듈(done="true") 상태를 얻으려면 최근 호출에서 다음을 재시도합니다.

run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions

이전에 언급된 아무런 문제 없이(남은 테스트도 없는 상태) 실행된 모듈은 새 보고서에서 완료된 모듈로 표시됩니다.

예외

  • CtsNNAPITestCases에는 인수의 linux/OS 제한사항으로 인해 알려진 문제가 있습니다. 모듈은 run cts -m CtsNNAPITestCases를 통해 격리된 상태로 직접 다시 실행할 수 있습니다.

회사 방화벽으로 인한 테스트 준비 실패를 방지하려면 어떻게 하면 되나요?

모든 자동화된 테스트 모음은 런타임 중에 CTS 미디어 파일 또는 비즈니스 로직 파일을 다운로드하려고 합니다. 많은 기업의 환경에서는 방화벽 및 프록시가 일반적으로 사용되기 때문에 테스트 준비에 실패하게 됩니다. 다음 명령줄을 실행하거나 Ubuntu에서 .profile에 추가합니다.

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

보안 요소용 CTS SIM 카드가 필요한가요?

테스트에서 SIM 카드의 필요 여부는 테스트 기기에서 기능이 지원되는지에 따라 다릅니다.

  • 기기에서 모바일 네트워크 운영자(이동통신사)를 통해 배포되는 UICC(예: SIM 카드)나 기기에 내장된 UICC에서 보안 요소에 액세스하는 Android 앱을 지원할 필요가 없다면 android.hardware.secure_element HAL 요소를 포함하지 않도록 HIDL 매니페스트를 구성하면 됩니다. 이 경우 android.se.omapi.SEService.getReaders() API가 빈 목록을 보고하고 CTS 테스트가 자동으로 통과되고 CTS 통과를 보고합니다.
  • 기기가 모바일 네트워크 운영자(이동통신사)를 통해 배포되는 UICC(예: SIM 카드)나 기기에 내장된 UICC에서 보안 요소에 액세스하는 Android 앱을 지원할 필요가 있다면 보안 요소를 적절히 구현하고 내부에서 테스트해야 합니다. Android 9에 추가된 android.se.omapi API 패키지의 작동을 보장하는 CTS 테스트를 어떻게 준비하여 실행하는지는 보안 요소에 관한 CTS 테스트에 나와 있습니다. 또한 CTS 테스트 적용 범위가 최소 수준이므로 자체적으로 추가 테스트를 진행하는 것이 좋습니다.

보안 요소용 CTS SIM 카드는 어디에서 얻을 수 있나요?

원하는 SIM 공급업체에 문의하세요.

토큰 샤딩으로 CTS 실행 중 잠금 화면에 주황색 SIM이 표시되는 이유는 무엇인가요?

SIM 카드 테스트가 잠겨 있기 때문에 테스트 사례가 시작되지 않습니다. 토큰 샤딩으로 CTS를 실행하기 전에 **SIM 카드 잠금 설정에서 SIM 카드 잠금을 사용 중지하세요.