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)

GTest는 C++ 테스트 및 모의 처리 프레임워크입니다. GTest 바이너리는 일반적으로 하위 수준 추상화 계층에 액세스하거나 다양한 시스템 서비스를 대상으로 원시 IPC를 실행합니다. GTest의 테스트 접근 방식은 일반적으로 테스트되는 서비스와 긴밀하게 결합됩니다. CTS에는 GTest 프레임워크가 포함되어 있습니다.

계측 테스트

계측 테스트는 am instrument 명령어를 통해 실행되는 특수한 테스트 실행 환경을 제공합니다. 여기에서 타겟 애플리케이션 프로세스가 다시 시작되고 기본 애플리케이션 컨텍스트를 사용하여 초기화되며 계측 스레드가 애플리케이션 프로세스 가상 머신에서 시작됩니다. CTS에는 계측 테스트가 포함됩니다.

Logcat

Logcat은 기기에서 오류와 메시지가 발생할 때의 스택 트레이스를 비롯하여 시스템 메시지의 로그를 만드는 명령줄 도구입니다. 이러한 오류와 메시지는 앱에서 Log 클래스로 작성한 것입니다.

로깅

로깅이란 로그를 사용하여 오류와 같은 컴퓨터 시스템 이벤트를 추적하는 것을 의미합니다. Android의 로깅은 Logcat 도구에 결합된 표준이 혼합되어 사용되므로 복잡합니다.

사후 제출 테스트

새 패치가 일반 커널 브랜치에 커밋되면 Android 사후 제출 테스트가 실행됩니다. 부분 브랜치 이름으로 aosp_kernel을 입력하면 사용 가능한 결과가 있는 커널 브랜치 목록이 표시됩니다. 예를 들어 android-mainline 결과는 다음에서 확인할 수 있습니다. https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid

사전 제출 테스트

사전 제출 테스트는 일반 커널에 장애가 도입되는 것을 방지하는 데 사용됩니다.

Trade Federation

Trade Federation(Tradefed)은 Android 기기에서 테스트를 실행하기 위해 고안된 연속 테스트 프레임워크입니다. 예를 들어 Tradefed는 호환성 테스트 모음 및 공급업체 테스트 모음 테스트를 실행하는 데 사용됩니다.

공급업체 테스트 모음(VTS)

Android 공급업체 테스트 모음(VTS)은 Android 테스트를 위한 광범위한 기능을 제공하고, 테스트 기반 개발 프로세스를 촉진하며, HAL 및 OS 커널 테스트를 자동화합니다.

플랫폼 테스트 유형

플랫폼 테스트는 일반적으로 하나 이상의 Android 시스템 서비스 또는 하드웨어 추상화 계층(HAL)과 상호작용하고 테스트 대상의 기능을 실행하며 테스트 결과의 정확성을 보장합니다. 플랫폼 테스트는 다음과 같을 수 있습니다.

  • (유형 1) Android 프레임워크를 사용하여 프레임워크 API를 실행합니다. 실행되는 특정 API에는 다음이 포함될 수 있습니다.
    • 서드 파티 앱용 공개 API
    • 권한이 있는 앱을 위한 숨겨진 API, 즉 시스템 API 또는 비공개 API(@hide, orprotected,package private`)
  • (유형 2) 원시 바인더 또는 IPC 프록시를 직접 사용하여 Android 시스템 서비스를 호출합니다.
  • (유형 3) 하위 수준 API 또는 IPC 인터페이스를 사용하여 HAL과 직접 상호작용합니다.

유형 1과 유형 2 테스트는 일반적으로 계측 테스트이며 유형 3 테스트는 보통 GTest입니다.

다음 단계

다음은 읽어 볼 수 있는 문서 목록입니다.