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 개요를 참고하세요.

Automotive 테스트 프레임워크

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

CATBox 테스트 모음 다운로드

Android 14

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

Android 12

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

Android 11

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

CATBox 빌드

로컬 워크스테이션에서 Android AOSP 코드를 사용할 수 있게 된 후에는 catbox 빌드 명령어를 사용합니다.

CATBox 패키지를 로컬에서 빌드하는 방법은 다음과 같습니다.

  1. 기기 아키텍처에 따라 기기 타겟을 선택하고 다음 명령어를 실행합니다.

    lunch <target>
    
  2. 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. 자동차 기기를 초기화하려면 설정 > 시스템 > 재설정 옵션 > 모든 데이터 삭제로 이동합니다.

    2. 기기가 자동으로 다시 시작될 때까지 기다립니다.

    3. adb가 사용 설정되어 있어야 합니다. 기기를 사용할 수 있는지 확인하려면 다음 명령어를 실행합니다.

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

      adb -s DEVICE_SERIAL root
      

      DEVICE_SERIAL을 자동차 기기의 일련번호 ID로 바꿉니다.

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

CATBox 패키지 추출

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

unzip android-catbox.zip
cd android-catbox

CATBox에서 테스트 실행

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

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

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

사용 가능한 테스트 계획의 전체 목록을 가져오려면 명령줄을 사용하세요.

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

테스트 계획 유형

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

기능 테스트 계획 설명
catbox-functional 기능 테스트입니다.
catbox-functional-app-info-setting 앱 정보 설정 기능 테스트입니다.
catbox-functional-admin-user-grant-permissions 관리자 부여 권한 기능 테스트입니다.
catbox-functional-app-info-setting-ui-elements 앱 정보 설정 기능 테스트입니다.
catbox-functional-appgrid 앱 그리드 기능 테스트입니다.
catbox-functional-base 기능 테스트 목록입니다.
catbox-functional-bluetooth-audio 블루투스 오디오 기능 테스트입니다.
catbox-functional-bluetooth-palette 상태 표시줄 기능 테스트입니다.
catbox-functional-bluetooth-tests Mobly를 사용한 블루투스 테스트입니다.
catbox-functional-brightness-palette 상태 표시줄 기능 테스트입니다.
catbox-functional-btmoped 블루투스 모페드 기반 기능 테스트입니다.
catbox-functional-date-time-setting 날짜 및 시간 설정 기능 테스트입니다.
catbox-functional-dial 다이얼 기능 테스트입니다.
catbox-functional-display-setting 디스플레이 설정 기능 테스트입니다.
catbox-functional-driving-optimized-apps UX 제한 기능 테스트입니다.
catbox-functional-enable-developers-option 개발자 옵션 사용 설정 기능 테스트입니다.
catbox-functional-home 홈 기능 테스트입니다.
catbox-functional-lock-screen 잠금 화면 기능 테스트입니다.
catbox-functional-mediacenter 미디어 센터 기능 테스트입니다.
catbox-functional-microphone-recent-apps 마이크 설정 기능 테스트입니다.
catbox-functional-microphone-setting 마이크 설정 기능 테스트입니다.
catbox-functional-multiuser 멀티 사용자 기능 테스트입니다.
catbox-functional-multiuser-system-user 멀티 사용자 기능 테스트입니다.
catbox-functional-navigation-bar 탐색 메뉴 기능 테스트입니다.
catbox-functional-network-palette 상태 표시줄 기능 테스트입니다.
catbox-functional-network-setting 네트워크 설정 기능 테스트입니다.
catbox-functional-notification 알림 기능 테스트입니다.
catbox-functional-privacy-permission-manager 개인 정보 보호 앱 권한 설정 기능 테스트입니다.
catbox-functional-privacy-setting 마이크 설정 기능 테스트입니다.
catbox-functional-privacy-setting-ui-elements 개인 정보 보호 설정 기능 테스트입니다.
catbox-functional-profile-icon 프로필 아이콘 막대 기능 테스트입니다.
catbox-functional-profiles-icon-list 프로필 아이콘 목록 테스트입니다.
catbox-functional-security-setting 보안 설정 기능 테스트입니다.
catbox-functional-setting 설정 기능 테스트입니다.
catbox-functional-settings-location 설정 위치 테스트입니다.
catbox-functional-sound-setting 사운드 설정 기능 테스트입니다.
catbox-functional-status-bar 상태 표시줄 기능 테스트입니다.
catbox-functional-storage-setting 저장소 설정 기능 테스트입니다.
catbox-functional-system-setting 시스템 설정 기능 테스트입니다.
catbox-functional-systemui 시스템 UI 테스트입니다.
catbox-functional-ux-restriction UX 제한 기능 테스트입니다.
catbox-functional-ux-restriction-facet-bar UX 제한 기능 테스트입니다.

다음 표에는 CATBox 성능 테스트 계획이 나열되어 있습니다.

성능 테스트 계획 설명
catbox-performance-cold-app-start-up-dialer 다이얼러 및 전화의 앱 콜드 시작 성능 테스트입니다.
catbox-performance-cold-app-start-up-mediacenter 미디어 센터의 앱 콜드 시작 성능 테스트입니다.
catbox-performance-cold-app-start-up-settings 설정의 앱 콜드 시작 성능 테스트입니다.
catbox-performance-create-and-switch-to-new-guest 지연 시간을 측정하여 새 게스트로 전환합니다.
catbox-performance-create-and-switch-to-new-user 지연 시간을 측정하여 새 관리자 외 사용자로 전환합니다.
catbox-performance-hot-app-start-up-dialer 다이얼러 및 전화의 앱 핫 시작 성능 테스트입니다.
catbox-performance-hot-app-start-up-mediacenter 미디어 센터의 앱 핫 시작 성능 테스트입니다.
catbox-performance-hot-app-start-up-settings 설정의 앱 핫 시작 성능 테스트입니다.
catbox-performance-jank-appgrid Appgrid 성능 테스트입니다.
catbox-performance-jank-contact-list 연락처 성능 테스트입니다.
catbox-performance-jank-media 미디어 성능 테스트입니다.
catbox-performance-jank-media-switch-playback 미디어 전환 재생 성능 테스트입니다.
catbox-performance-jank-notifications 알림 성능 테스트입니다.
catbox-performance-jank-settings 설정 성능 테스트입니다.
catbox-performance-switch-to-existing-user 지연 시간을 측정하여 기존 사용자로 전환합니다.

멀티스크린 호스트 측 테스트 실행

멀티스크린 호스트 측 테스트 실행에서는 CATBox를 사용하여 한 세션에서 테스트를 실행합니다. 예를 들어 BTDiscoveryTest는 다음과 같습니다.

make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTest

CATBox가 apk를 설치하면 테스트가 올바른 Python 실행 환경에서 실행됩니다.

CATBox 테스트 결과 검토

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

결과 유형 위치
테스트 결과 test_result.xml
실패 테스트 세부정보 test_result_failures_suite.html
성능 측정항목 결과 /report-log-files/CatboxPerformanceTests.reportlog.json
기능 및 성능 테스트 실행 /android-catbox/logs/latest