호환성 테스트 모음

호환성 테스트 모음(CTS)는 상용 등급의 무료 테스트 모음으로, Android 오픈소스 프로젝트(AOSP)에서 바이너리로 또는 소스로 다운로드하여 사용할 수 있습니다. CTS는 호환성의 '메커니즘'을 나타냅니다.

CTS는 데스크톱 컴퓨터에서 실행되며 연결된 기기나 에뮬레이터에서 직접 테스트 사례를 실행합니다. CTS는 기기를 빌드하는 엔지니어의 일상 워크플로에 통합(연속 빌드 시스템 등을 통해)될 수 있도록 설계된 단위 테스트 세트입니다. CTS의 목적은 비호환성을 조기에 발견하고 개발 과정 내내 소프트웨어의 호환성을 유지하는 것입니다.

CTS는 주요 소프트웨어 구성요소 두 개를 사용하는 자동화된 테스트 모음입니다.

  • CTS Trade Federation 테스트 하네스는 데스크톱 컴퓨터에서 실행되고 테스트 실행을 관리하며 여러 DUT(테스트 대상 기기)에 걸쳐 테스트를 샤딩할 수 있는 기능을 제공합니다. 도구 모음 재시도 기능을 사용하여 전체 도구 모음이 아니라 실패한 테스트만 재시도하여 재실행 시간을 크게 줄일 수도 있습니다.
  • 개별 테스트 사례는 DUT에서 실행됩니다. 테스트 사례는 자바를 사용하여 JUnit 테스트로 작성되며 실제 기기 타겟에서 실행하기 위해 Android .apk 파일로 패키징됩니다.

호환성 테스트 모음 인증 도구(CTS 인증 도구)는 CTS의 추가 항목이며 다운로드할 수 있습니다. CTS 인증 도구는 고정된 기기에서 수동 입력 없이 테스트할 수 없는 API 및 기능(예: 음질, 가속도계)을 위한 테스트를 제공합니다.

CTS 인증 도구는 수동 테스트용 도구이며 다음과 같은 소프트웨어 구성요소가 포함됩니다.

  • DUT에서 실행되고 결과를 수집하는 CTS 인증 도구 앱

  • 데스크톱 컴퓨터에서 실행되어 CTS 인증 도구 앱의 일부 테스트 사례에 데이터 또는 추가 관리 기능을 제공하는 실행 파일 또는 스크립트

워크플로

CTS 흐름

그림 1. CTS 사용 방법

이 다이어그램에는 CTS 워크플로가 요약되어 있습니다. 자세한 안내는 설정으로 시작하는 이 섹션의 하위 페이지를 참조하세요.

테스트 사례의 유형

CTS에는 다음과 같은 유형의 테스트 사례가 포함됩니다.

  • 단위 테스트: Android 플랫폼 내 코드의 원자 단위(예: java.util.HashMap과 같은 단일 클래스)를 테스트합니다.
  • 기능 테스트: 상위 레벨의 사용 사례에서 여러 API를 함께 테스트합니다.

CTS의 향후 버전에는 다음과 같은 유형의 테스트 사례가 포함될 예정입니다.
  • 견고성 테스트: 스트레스를 받고 있는 시스템의 내구성을 테스트합니다.
  • 성능 테스트: 정의된 벤치마크(예를 들어 초당 렌더링 프레임 수)를 기준으로 시스템 성능을 테스트합니다.

포함 영역

단위 테스트 사례에는 호환성을 보장하기 위해 다음 영역이 포함됩니다.

영역 설명
서명 테스트 각 Android 버전에는 버전에 포함된 모든 공개 API의 서명을 설명하는 XML 파일이 있습니다. CTS에는 기기에서 사용할 수 있는 API를 기준으로 이러한 API 서명을 확인하는 유틸리티가 포함되어 있습니다. 서명 확인의 결과는 테스트 결과 XML 파일에 기록됩니다.
플랫폼 API 테스트 올바른 클래스, 속성 및 메서드 서명, 올바른 메서드 동작, 잘못된 매개변수 처리를 위해 예상되는 동작을 확인하기 위한 네거티브 테스트 등 API 정확성을 확인하기 위해 SDK 클래스 색인에 문서화된 대로 플랫폼(핵심 라이브러리 및 Android 애플리케이션 프레임워크)을 테스트합니다.
Dalvik 테스트 Dalvik 실행 파일 형식을 테스트하는 데 초점을 맞춥니다.
플랫폼 데이터 모델 CTS는 연락처, 브라우저, 설정 등 SDK android.provider 패키지에 문서화된 대로 콘텐츠 제공업체를 통해 애플리케이션 개발자에게 노출되는 핵심 플랫폼 데이터 모델을 테스트합니다.
플랫폼 인텐트 CTS는 SDK 사용 가능한 인텐트에 문서화된 대로 핵심 플랫폼 인텐트를 테스트합니다.
플랫폼 권한 CTS는 SDK 사용 가능한 권한에 문서화된 대로 핵심 플랫폼 권한을 테스트합니다.
플랫폼 리소스 CTS는 SDK 사용 가능한 리소스 유형에 문서화된 대로 핵심 플랫폼 리소스 유형의 올바른 처리를 테스트합니다. 여기에는 간단한 값, 드로어블, 나인 패치, 애니메이션, 레이아웃, 스타일, 테마 및 대체 리소스 로드의 테스트가 포함됩니다.