Android 플랫폼 테스트

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

지속적 테스트(Tradefed)라고도 하는 Android 기기에서 테스트를 실행하기 위해 고안된 프레임워크입니다. 예를 들어 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입니다.

다음 단계

다음은 자세한 내용을 확인할 수 있는 문서 목록입니다.