CATBox(Complete Automotive Tests in a Box)

CATBox(Complete Automotive Tests in a Box)는 오픈소스 패키지로 최소한의 구성을 사용하여 자동차 테스트를 간소화하고 실행하는 데 필요한 프레임워크와 도구를 제공합니다. CATBox는 Android Automotive OS(AAOS) 구현을 테스트하고 검증하는 데 사용하는 도구, 인프라, 테스트와 호환되며 확장 가능합니다. 따라서 CATBox를 사용하면 고품질 제품을 시장에 제공할 수 있습니다.

CATBox 설계 및 구현

CATBox 테스트 모음에는 자동차 대상 기기의 기능 테스트와 성능 테스트를 실행하는 데 필요한 도구, 프레임워크, 테스트가 포함됩니다.

다음 이미지는 CATBox 패키지의 설계를 개괄적으로 보여줍니다.

CATBox

그림 1. CATBox 패키지

Tradefed

Tradefed는 Android 기기에서 테스트를 실행하는 데 사용되는 오픈소스 연속 테스트 프레임워크입니다. 자세한 내용은 Trade Federation 개요를 참고하세요.

자동차 테스트 프레임워크

CATBox는 Automotive 기기에서 다양한 애플리케이션을 테스트하기 위한 API를 제공하는 Spectatio라는 Automotive 테스트 프레임워크를 기반으로 합니다. 이 프레임워크는 UI Animator라는 오픈소스 테스트 프레임워크를 기반으로 빌드되었으며 사용자 및 시스템 애플리케이션과 상호작용하는 UI 테스트를 빌드하기 위한 API 모음을 제공합니다.

CATBox 테스트 모음 다운로드

Android 12

Android 12는 코드명이 S인 개발 마일스톤 버전입니다. 다음 링크를 사용하여 Android 12용 CATBox 테스트 모음을 다운로드할 수 있습니다.

Android 11

Android 11은 코드명이 R인 개발 마일스톤 버전입니다. 다음 링크를 사용하여 Android 11용 CATBox 테스트 모음을 다운로드할 수 있습니다

CATBox 빌드

로컬 워크스테이션에서 Android AOSP 코드를 사용할 수 있게 된 후에는 catbox 빌드 명령어를 사용합니다. CATBox 패키지를 로컬에서 빌드하는 방법은 다음과 같습니다.

  1. 대상 기기를 선택하고 다음 명령어를 실행합니다.

    # Select Device Target Based on Device Architecture
    $ lunch <target>
    
  2. CATBox를 빌드하려면 다음 명령어를 실행합니다.

    # Build CATBox
    $ make catbox
    

    이 명령어는 /out/host/linux-x86/catbox 디렉터리에 android-catbox.zip 파일을 만들며, 이 파일은 테스트 실행에 사용할 수 있습니다.

환경 설정

CATBox 테스트를 실행하는 데 필요한 환경 설정은 CTS 설정과 비슷합니다. 환경을 설정하려면 다음 작업을 각각 완료하세요.

CATBox 설정 및 실행

Tradefed 테스트 프레임워크를 사용하여 Android 기기에서 테스트를 실행합니다. CATBox를 설정하기 전에 Trade Federation 개요를 숙지해야 합니다.

CATBox를 설정하고 실행하려면 아래 섹션을 참고하세요.

기기 설정

테스트 계획을 실행하기 전에 다음 단계에 따라 기기를 설정합니다.

  1. Android 디버그 브리지(adb)Android Asset Packaging Tool(AAPT) 모두 최신 버전이 설치되어 있고 도구의 위치가 컴퓨터의 시스템 경로에 추가되어 있는지 확인합니다. 자세한 내용은 adb 및 AAPT를 참고하세요.

  2. 하나 이상의 기기를 연결하고 다음과 같이 테스트 대상 기기(DUT)를 준비합니다.

    1. Automotive 기기를 초기화하려면 설정 > 시스템 > 옵션 재설정 > 모든 데이터 삭제를 클릭합니다.
    2. 기기가 자동으로 다시 시작될 때까지 기다립니다.
    3. adb가 사용 설정되어 있어야 합니다. 기기를 사용할 수 있는지 확인하려면 다음 명령어를 실행합니다.

      $ adb devices
      
    4. 루트를 사용 설정하려면 다음 명령어를 실행합니다.

      # Enable Root
      $ adb -s DEVICE_SERIAL root
      

      DEVICE_SERIAL을 Automotive 기기의 일련번호 ID로 바꿉니다.

    5. Wi-Fi에 연결합니다.

CATBox 패키지 추출

기기 설정을 완료한 후 CATBox 패키지의 압축을 해제하고 패키지가 추출된 폴더로 이동합니다.

# Extract the CATBox Package
$ unzip android-catbox.zip

# Navigate to extracted CATBox Package
$ cd android-catbox

CATBox에서 테스트 실행

CATBox 패키지에서 테스트 계획에 따라 CATBox를 실행하려면 다음을 실행합니다.

./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL

DEVICE_SERIAL을 Automotive 기기의 일련번호 ID로 바꿉니다. 호스트 머신에 연결된 기기가 여러 개라면 DEVICE_SERIAL을 사용하여 기기를 구별합니다. TEST_PLAN_NAME을 실행하려는 테스트 계획의 이름으로 바꿉니다.

사용 가능한 테스트 계획의 전체 목록을 가져오려면 다음을 실행합니다.

./tools/catbox-tradefed list plans | grep -i catbox

다음 표에는 사용 가능한 테스트 계획이 유형별로 나와 있습니다.

테스트 유형 이름
기능 테스트 계획 catbox-functional-notification
catbox-functional-setting
catbox-functional-dial
catbox-functional-system-setting
catbox-functional-app-info-setting
catbox-functional-network-setting
catbox-functional-security-setting
catbox-functional-sound-setting
catbox-functional-date-time-setting
catbox-functional-appgrid
catbox-functional-home
catbox-functional-lock-screen
catbox-functional-navigation-bar
catbox-functional-ux-restriction
catbox-functional-bluetooth-audio
성능 테스트 계획 catbox-performance-cold-app-start-up-settings
catbox-performance-hot-app-start-up-settings
catbox-performance-jank-settings
catbox-performance-cold-app-start-up-dialer
catbox-performance-hot-app-start-up-dialer
catbox-performance-jank-contact-list
catbox-performance-jank-notifications
catbox-performance-jank-appgrid
catbox-performance-cold-app-start-up-mediacenter
catbox-performance-hot-app-start-up-mediacenter
catbox-performance-create-and-switch-to-new-guest
catbox-performance-create-and-switch-to-new-user
catbox-performance-create-and-switch-to-precreated-guest
catbox-performance-create-and-switch-to-precreated-user
catbox-performance-switch-to-existing-user

CATBox 테스트 결과

테스트 결과는 기능 테스트 실행과 성능 테스트 실행 모두 android-catbox/results/latest 폴더에 저장됩니다.

  • 테스트 결과는 test_result.xml을 참고하세요.
  • 실패한 테스트의 세부정보는 test_result_failures_suite.html을 참고하세요.
  • 성능 측정항목 결과는 report-log-files 디렉터리의 CatboxPerformanceTests.reportlog.json을 참고하세요.

기능 테스트 실행 로그와 성능 테스트 실행 로그는 모두 android-catbox/logs/latest 경로에 저장됩니다.

다이얼, 블루투스 오디오 및 연락처 목록 버벅거림 테스트와 같은 일부 테스트에는 추가 기기 설정이 필요합니다.

다이얼 테스트

다이얼 테스트에는 기기 설정과 런타임 매개변수가 필요합니다. 기기를 설정하는 방법은 다음과 같습니다.

  1. 블루투스를 통해 휴대기기를 자동차 헤드 단위에 연결합니다.
  2. 테스트 휴대전화에 다이얼 테스트를 실행할 수 있는 SIM 카드가 있고 휴대전화가 모바일 네트워크에 연결되어 있어야 합니다.
  3. 다이얼 테스트에서는 휴대전화에 저장된 기본 연락처가 사용됩니다. contacts.vcf를 사용하여 연락처를 휴대전화에 로드합니다.
  4. COMPANION_SERIAL을 휴대전화의 일련번호 ID로 바꾸고 다음 명령어를 실행합니다.

    # Contacts can be loaded on the phone by pushing the contacts.vcf file on
    the phone and importing it in the Contacts application.
    
    OR
    
    # Importing contacts using adb.
    
    # Push contacts VCF file to phone
    
    $ adb -s COMPANION_SERIAL push <path-to-downloaded-contacts-vcf-file> /storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf
    
    # Grant Read Permissions
    
    $ adb -s COMPANION_SERIAL shell pm grant com.google.android.contacts
    android.permission.READ_EXTERNAL_STORAGE
    
    # Import contacts from the VCF file
    
    $ adb -s COMPANION_SERIAL shell am start-activity -W -t 'text/x-vcard' -d file:///storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf
    -a android.intent.action.VIEW com.google.android.contacts
    
    # Then accept the prompts on the UI to load the contacts.
    
런타임 매개변수

다이얼 테스트에서는 테스트 실행을 위해 짧은 전화번호와 긴 전화번호가 사용되며 검색 테스트를 위해 연락처 이름과 연락처 번호도 사용됩니다. 이 정보를 제공하려면 다음 매개변수를 사용하세요.

Parameters for Large Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:large-phone-number:=< 10 digit phone number>

Parameters for Small Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:small-phone-number:=< 3 digit phone number>

Parameters for Search Contact Name:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-name:=< some contact name stored on the phone >

Parameters for Search Contact Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-number:=< contact number of the name provided in the search contact name >

블루투스 오디오 테스트

블루투스 오디오 테스트용 기기를 설정하는 방법은 다음과 같습니다.

  1. 휴대전화에 YouTube Music 앱이 설치되어 있고 계정에 로그인되어 있어야 합니다. 그러지 않은 경우 앱을 설치하고 계정에 로그인합니다.
  2. 블루투스를 통해 휴대전화를 Automotive 기기와 직접 페어링합니다.
  3. 휴대전화가 페어링되면 휴대전화에서 노래를 재생한 다음 테스트 실행을 시작합니다.

연락처 목록 버벅거림 테스트

연락처 목록 버벅거림 테스트를 위해 기기를 설정하는 방법은 다음과 같습니다.

  1. 테스트가 버벅거림 측정항목을 수집하기 위해 연락처 목록을 스크롤할 수 있도록 휴대전화에 연락처가 여러 개 있어야 합니다.
  2. 블루투스를 통해 휴대전화를 Automotive 기기와 직접 페어링합니다.
  3. 휴대전화가 페어링되면 기기에서 연락처에 액세스할 수 있습니다.