Android 오픈소스 프로젝트 (AOSP)는 다양한 구현 부분을 테스트하는 여러 도구와 테스트 모음을 제공합니다. 이 섹션의 페이지를 사용하기 전에 다음 용어를 숙지해야 합니다.
- Android 호환 기기
- Android SDK 및 NDK를 사용하여 서드 파티 개발자가 작성한 서드 파티 앱을 실행할 수 있는 기기입니다. Android 호환 기기는 호환성 정의 문서(CDD)의 요구사항을 준수하고 호환성 테스트 모음(CTS)을 통과해야 합니다. Android 호환 기기는 Android 생태계에 참여할 수 있습니다. 여기에는 Google Play의 잠재적 라이선스와 Google 모바일 서비스 (GMS) 앱 및 API 모음 관련 잠재적 라이선스, Android 상표 사용이 포함됩니다. 누구나 Android 소스 코드를 사용할 수 있지만 Android 생태계의 일부로 간주되려면 기기가 Android와 호환되어야 합니다.
- 아티팩트
- 로컬 문제 해결을 지원하는 빌드 관련 로그입니다.
- 호환성 정의 문서(CDD)
- Android 호환 기기의 하드웨어 및 소프트웨어 요구사항이 나와 있는 문서입니다.
- 호환성 테스트 모음(CTS)
- AOSP에서 바이너리로 또는 소스로 다운로드할 수 있는 상용 등급의 무료 테스트 모음입니다. CTS는 일상 워크플로에 통합되도록 설계된 일련의 단위 테스트입니다. CTS의 목적은 비호환성을 발견하고 개발 과정 내내 소프트웨어의 호환성을 유지하는 것입니다. - CTS 및 플랫폼 테스트는 상호 배타적이지 않습니다. 다음은 일반 가이드라인입니다. - 테스트가 프레임워크 API 함수 또는 동작의 정확성을 확인하고 OEM 파트너에 적용되어야 하는 경우 테스트가 CTS에 있어야 합니다.
- 테스트가 플랫폼 개발 중에 회귀를 포착하려는 목적이 있고, 실행하려면 독점 권한이 필요할 수 있으며, AOSP에 출시된 것처럼 구현 세부정보에 종속될 수 있다면 이 테스트는 플랫폼 테스트여야 합니다.
 
- Google 모바일 서비스(GMS)
- 기기에 사전 설치할 수 있는 Google 앱 및 API 모음입니다. 
- GoogleTest(GTest)
- C++ 테스트 및 모의 처리 프레임워크입니다. GTest 바이너리는 일반적으로 하위 수준 추상화 계층에 액세스하거나 다양한 시스템 서비스를 대상으로 원시 IPC를 실행합니다. GTest의 테스트 접근 방식은 일반적으로 테스트되는 서비스와 긴밀하게 결합됩니다. CTS에는 GTest 프레임워크가 포함되어 있습니다. 
- 계측 테스트
- 타겟 앱 프로세스가 기본 앱 컨텍스트로 다시 시작되고 초기화되며 계측 스레드가 앱 프로세스 가상 머신 내에서 시작되는 - am instrument명령어로 실행되는 특수 테스트 실행 환경입니다. CTS에는 계측 테스트가 포함되어 있습니다.
- Logcat
- 기기에서 오류와 메시지가 발생할 때의 스택 트레이스를 비롯하여 시스템 메시지의 로그를 만드는 명령줄 도구입니다. 이러한 오류와 메시지는 앱에서 - Log클래스로 작성한 것입니다.
- 로깅
- 로그를 사용하여 오류와 같은 컴퓨터 시스템 이벤트를 추적하는 것을 의미합니다. Android의 로깅은 Logcat 도구에 결합된 표준이 혼합되어 사용되므로 복잡합니다. 
- 사후 제출 테스트
- 새 패치가 일반 커널 브랜치에 커밋될 때 실행되는 Android 테스트입니다. 부분 브랜치 이름으로 - aosp_kernel을 입력하면 사용 가능한 결과가 있는 커널 브랜치 목록이 표시됩니다. 예를 들어- android-mainline결과는 다음에서 확인할 수 있습니다. https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid
- 사전 제출 테스트
- 일반 커널에 장애가 도입되는 것을 방지하는 데 사용되는 테스트입니다. 
- Trade Federation
- Android 기기에서 테스트를 실행하기 위해 고안된 연속 테스트 프레임워크입니다. Tradefed라고도 합니다. 예를 들어 Tradefed는 호환성 테스트 모음 및 공급업체 테스트 모음 테스트를 실행하는 데 사용됩니다. 
- 공급업체 테스트 모음(VTS)
- Android 테스트를 위한 광범위한 기능 세트로, 테스트 기반 개발 프로세스를 촉진하고 하드웨어 추상화 계층 (HAL) 및 OS 커널 테스트를 자동화합니다. 
플랫폼 테스트 유형
플랫폼 테스트는 일반적으로 하나 이상의 Android 시스템 서비스 또는 HAL 계층과 상호작용하고 테스트 대상의 기능을 실행하며 테스트 결과의 정확성을 보장합니다. 플랫폼 테스트는 다음과 같을 수 있습니다.
- (유형 1) Android 프레임워크를 사용하여 프레임워크 API를 실행합니다. 실행되는 특정 API에는 다음이 포함될 수 있습니다.
- 서드 파티 앱용 공개 API
- 권한이 있는 앱을 위한 숨겨진 API, 즉 시스템 API 또는 비공개 API (@hide또는protected,package private)
 
- (유형 2) 원시 바인더 또는 IPC 프록시를 직접 사용하여 Android 시스템 서비스를 호출합니다.
- (유형 3) 하위 수준 API 또는 IPC 인터페이스를 사용하여 HAL과 직접 상호작용합니다.
유형 1과 유형 2 테스트는 일반적으로 계측 테스트이며 유형 3 테스트는 보통 GTest입니다.
다음 단계
자세한 내용은 다음 문서를 참고하세요.
- Android 아키텍처를 잘 모른다면 아키텍처 개요를 참고하세요. 
- Android 호환 기기를 만들고 있다면 Android 호환성 프로그램 개요를 참고하세요. 
- 계측 테스트와 기능 테스트, 측정항목 테스트, JAR 호스트 테스트를 플랫폼 연속 테스트 서비스에 통합하려면 테스트 개발 워크플로를 참고하세요. 
- 기기의 취약점을 감지하여 기기 보안을 강화하려면 보안 테스트를 참고하세요. 
- HAL 및 커널 구현 테스트에 관한 자세한 내용은 공급업체 테스트 모음(VTS) 및 인프라를 참고하세요. 
- 앱 테스트의 경우 Android 앱 테스트 기본사항을 읽고 제공된 샘플을 사용하여 Kotlin 05.1의 고급 Android:테스트 기본사항을 실행합니다. 
- 저장소 후크를 통해 제공되는 기본 사전 제출 테스트에 관해 알아보세요. 이러한 후크는 커밋을 업로드하는 등 진행하기 전에 린터를 실행하고 형식을 확인하고 단위 테스트를 트리거하는 데 사용할 수 있습니다. 이러한 후크는 기본적으로 사용 중지되어 있습니다. 자세한 내용은 AOSP 사전 업로드 후크를 참고하세요. 
- 로깅에 관한 자세한 내용은 로깅 이해를 참고하세요. 
- Android 코드를 디버그하는 방법을 알아보려면 네이티브 Android 플랫폼 코드 디버그를 참고하세요. 
