CTS FAQ

Android 호환성 프로그램 은 Android 생태계에 대한 긍정적인 피드백을 유지하는 핵심 동인입니다. CTS는 스케일의 호환성 품질을 보장하는 핵심 도구입니다. Android 팀은 CTS 도구 및 테스트 범위를 지속적으로 개선하고 있습니다. 테스트 사례를 정기적으로 추가하면 호환되는 기기의 품질이 크게 향상됩니다.

이 문서에서는 CTS 테스트를 보다 효율적으로 실행하기 위한 FAQ를 제공합니다.

CTS 샤딩과 TF 샤딩의 차이점은 무엇입니까?

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

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

여러 ABI를 지원하는 장치에서 기대할 수 있는 것은 무엇입니까?

장치는 지원한다고 주장하는 각 ABI 모드에 대해 모든 CTS/검증자를 통과해야 합니다. 따라서 특정 ABI에 대한 앱을 실행해야 합니다. 여러 ABI에 대한 지침은 다음과 같습니다.

  • CTS/Verifier의 경우 각 아키텍처에 대한 ARM 및 x86 릴리스 가 있습니다. 각각은 32비트 또는 64비트 모드를 지원할 수 있습니다.
  • CTS 테스트의 경우 장치가 ARM과 x86을 모두 지원하는 경우 ARM 및 x86 CTS 테스트를 각각 실행하고 통과해야 합니다.

CDD 3.3.1을 참조하십시오. ABI의 CDD 요구 사항에 대한 응용 프로그램 바이너리 인터페이스 .

테스트 실행 시간을 줄이기 위해 기본 ABI(예: 64비트)에서만 테스트를 실행하는 것으로 충분합니까?

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

Not Executed로 보고된 테스트 케이스가 많은 이유는 무엇입니까?

Not Executed 번호 대신 Module Done 번호를 확인해야 합니다.

이전 버전에서는 CTS 모듈이 완료되기 전에 너무 적극적으로 모듈 완료 로 보고되었습니다. 따라서 일부 장치에 문제가 있는 경우에도 모든 테스트 케이스가 완료되지 않은 채 Modules Done 번호가 보고되었습니다. 새로운 테스트 하네스는 보다 보수적이며 문제가 발생할 때 더 많은 수의 Not Executed 테스트를 보고합니다.

완료까지 실행된 모듈은 다음 동안 보고서의 가장 최근 호출(done="false")에서 모듈이 완료되지 않음 을 보고합니다.

  • 모듈에 대한 테스트 실행이 장치 연결 문제로 인해 중단되었습니다.
  • 모듈에 대해 예상되는 모든 테스트 실행이 수행되지는 않았습니다.
  • 다음과 같은 추가 필터링 옵션과 함께 재시도(옵션 -r/--retry 사용):

    • --포함 필터
    • --제외 필터
    • -t/--test(재시도 시 아직 지원되지 않는 옵션)
    • --재시도 유형 실패
    • --하위 계획

이러한 모듈에 대한 모듈 완료 (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

위에서 언급한 문제 없이 실행된 모듈(남아 있는 테스트가 0개 있더라도)은 새 보고서에서 모듈 완료 로 표시됩니다.

예외

  • CtsNNAPITestCases에는 args의 Linux/OS 제한으로 인해 알려진 문제가 있습니다. 모듈은 run cts -m CtsNNAPITestCases 하여 개별적으로 다시 실행할 수 있습니다.

회사 방화벽 뒤에서 테스트 준비 실패를 방지하려면 어떻게 해야 합니까?

모든 자동화된 테스트 제품군은 런타임 중에 CTS 미디어 파일이나 비즈니스 로직 파일을 다운로드하려고 합니다. 많은 기업 환경에서 방화벽/프록시가 일반적이므로 테스트 준비가 실패합니다. 다음 줄을 실행하거나 .profile(Ubuntu의 경우)에 추가합니다.

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

Secure Element용 CTS용 SIM 카드가 필요합니까?

테스트에 SIM 카드가 필요한지 여부는 해당 기능이 테스트 장치에서 지원되는지 여부에 따라 다릅니다.

  • 장치가 모바일 네트워크 운영자(이동통신사)가 배포하거나 장치에 내장된 UICC (예: SIM 카드)에서 보안 요소에 액세스하는 Android 앱을 지원할 필요가 없는 경우 다음을 포함하지 않도록 HIDL 매니페스트를 구성할 수 있습니다. android.hardware.secure_element HAL 요소. 이 경우 android.se.omapi.SEService.getReaders() API는 빈 목록을 보고하고 CTS 테스트는 자동으로 통과하고 CTS에 대한 통과를 보고합니다.
  • 장치가 모바일 네트워크 운영자(통신업체)가 배포하거나 장치에 내장된 UICC (예: SIM 카드)의 보안 요소에 액세스하는 Android 앱을 지원해야 하는 경우 보안 요소를 적절하게 구현하고 테스트해야 합니다. 사내. 보안 요소에 대한 CTS 테스트는 Android 9에 추가된 android.se.omapi API 패키지가 작동하는지 확인하는 CTS 테스트 실행을 준비하는 방법을 설명합니다. 또한 CTS 테스트 커버리지가 최소화되므로 자체적으로 추가 테스트를 수행하는 것이 좋습니다.

Secure Element용 CTS용 SIM 카드는 어디에서 구할 수 있습니까?

선호하는 SIM 공급업체에 문의할 수 있습니다.

토큰 샤딩으로 CTS를 실행하는 동안 잠금 화면에 주황색 SIM이 표시되는 이유는 무엇입니까?

SIM 카드 테스트가 잠겨 있기 때문에 테스트 케이스가 시작되지 않습니다. 토큰 샤딩으로 CTS를 실행하기 전에 "SIM 카드 잠금 설정"에서 "SIM 카드 잠금" 옵션을 비활성화하십시오.