Testes automotivos completos em uma caixa

Complete Automotive Tests in a Box (CATBox) é um pacote de código aberto que fornece as estruturas e ferramentas necessárias para otimizar e executar testes automotivos com configuração mínima. O CATBox é escalável e compatível com as ferramentas, infraestrutura e testes que você usa para testar e validar suas implementações do Android Automotive OS (AAOS). Como resultado, você pode fornecer produtos de alta qualidade ao mercado.

Projeto e implementação de CATBox

O conjunto de testes CATBox fornece as ferramentas, estruturas e testes necessários para executar testes funcionais e de desempenho em um dispositivo de destino automotivo.

A imagem a seguir ilustra um design de alto nível de um pacote CATBox.

CATBox

Figura 1. Pacote CATBox

Tradefed

Tradefed é uma estrutura de teste contínuo de código aberto usada para executar testes em dispositivos Android. Para obter detalhes, consulte Visão geral da Federação de Comércio .

Estrutura de teste automotivo

O CATBox é baseado em um framework de teste automotivo chamado Spectatio, que fornece APIs para testar vários aplicativos em dispositivos automotivos. Ele é construído sobre o UI Automator , uma estrutura de teste de código aberto, que fornece um conjunto de APIs para criar testes de interface do usuário que interagem com aplicativos do usuário e do sistema.

Download do conjunto de testes CATBox

Android 12

O Android 12 é o lançamento do marco de desenvolvimento com o codinome S. Use os links a seguir para fazer o download dos conjuntos de testes do CATBox para o Android 12:

Android 11

O Android 11 é o lançamento do marco de desenvolvimento com o codinome R. Use os links a seguir para fazer o download dos conjuntos de testes do CATBox para o Android 11:

Construir CATBox

Use o comando catbox build assim que o código Android AOSP estiver disponível na estação de trabalho local. Para construir o pacote CATBox localmente:

  1. Selecione Device Target e execute o seguinte comando:

    # Select Device Target Based on Device Architecture
    $ lunch <target>
    
  2. Para construir o CATBox, execute o seguinte comando:

    # Build CATBox
    $ make catbox
    

    Esse comando cria o arquivo android-catbox.zip no diretório /out/host/linux-x86/catbox , que pode ser usado para executar testes.

Configuração do ambiente

A configuração do ambiente necessária para executar os testes do CATBox é semelhante à Configuração do CTS . Para configurar o ambiente, conclua cada uma das seguintes tarefas:

Configuração e execução do CATBox

Use a estrutura de teste Tradefed para executar os testes em dispositivos Android. Antes de configurar o CATBox, familiarize-se com a Visão Geral da Federação de Comércio .

Para configurar e executar o CATBox, consulte as seções abaixo.

Configuração do dispositivo

Antes de executar um plano de teste, conclua as etapas a seguir para configurar seu dispositivo:

  1. Certifique-se de ter instalado as versões recentes do Android Debug Bridge (adb) e do Android Asset Packaging Tool (AAPT) , bem como adicionado o local dessas ferramentas ao caminho do sistema de sua máquina. Para obter detalhes, consulte ADB e AAPT .

  2. Conecte pelo menos um dispositivo e prepare o dispositivo em teste (DUT) da seguinte forma:

    1. Para redefinir o dispositivo automotivo de fábrica, clique em Configurações > Sistema > Redefinir opções > Apagar todos os dados .
    2. Aguarde o dispositivo reiniciar automaticamente.
    3. Certifique-se de que o adb esteja ativado. Para confirmar se o dispositivo está disponível, execute o seguinte comando:

      $ adb devices
      
    4. Para habilitar o root, execute o seguinte comando:

      # Enable Root
      $ adb -s DEVICE_SERIAL root
      

      Substitua DEVICE_SERIAL pelo Serial ID do dispositivo automotivo.

    5. Conecte-se ao Wi-Fi.

Extraia o pacote CATBox

Após concluir a configuração do dispositivo, descompacte o pacote CATBox e vá para a pasta extraída:

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

# Navigate to extracted CATBox Package
$ cd android-catbox

Executar testes no CATBox

Para executar o CATBox com os planos de teste no pacote CATBox, execute o seguinte:

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

Substitua DEVICE_SERIAL pelo Serial ID do dispositivo automotivo. Se você tiver vários dispositivos conectados à máquina host, use DEVICE_SERIAL para distingui-los. Substitua TEST_PLAN_NAME pelo nome do plano de teste que você deseja executar.

Para obter uma lista completa dos planos de teste disponíveis, execute o seguinte:

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

A tabela a seguir exibe os planos de teste disponíveis por tipo:

Tipo de teste Nome
Planos de teste funcional 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
Planos de teste de desempenho 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

Resultados do teste CATBox

Os resultados dos testes são salvos na pasta android-catbox/results/latest para execuções de testes funcionais e de desempenho.

  • Para obter resultados de teste, consulte test_result.xml .
  • Para detalhes de testes de falha, consulte test_result_failures_suite.html .
  • Para obter resultados de métricas de desempenho, consulte CatboxPerformanceTests.reportlog.json no diretório report-log-files .

Os logs são salvos no caminho android-catbox/logs/latest para execuções de teste funcional e de desempenho.

Alguns testes, como os testes de discagem, áudio Bluetooth e lista de contatos, exigem configuração adicional do dispositivo.

Teste de discagem

O teste de discagem requer configuração do dispositivo e parâmetros de tempo de execução. Para configurar o dispositivo:

  1. Conecte o dispositivo móvel à unidade principal Automotive através de Bluetooth.
  2. Verifique se o telefone de teste contém um cartão SIM para executar testes de discagem e está conectado à rede móvel.
  3. Os testes de discagem usam contatos padrão armazenados no telefone. Use o contacts.vcf para carregar contatos no telefone.
  4. Substitua o COMPANION_SERIAL pelo Serial ID do telefone e execute os seguintes comandos:

    # 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.
    
Parâmetros de tempo de execução

Os testes de discagem usam números de telefone pequenos e grandes para execução de teste. Os testes de discagem também usam o nome do contato e o número do contato para testes de pesquisa. Use os seguintes parâmetros para fornecer essas informações:

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 >

Teste de áudio Bluetooth

Para configurar um dispositivo para o teste de áudio Bluetooth:

  1. Verifique se o aplicativo YouTube Music está instalado no telefone e se você está conectado a uma conta. Caso contrário, instale o aplicativo e faça login em uma conta.
  2. Emparelhe o telefone manualmente com o dispositivo automotivo por meio de Bluetooth.
  3. Assim que o telefone estiver emparelhado, toque uma música no telefone e comece a executar o teste.

Teste de instabilidade da lista de contatos

Para configurar um dispositivo para o teste de instabilidade da lista de contatos:

  1. Certifique-se de que o telefone tenha vários contatos para que o teste possa rolar pela lista de contatos para coletar métricas de instabilidade.
  2. Emparelhe o telefone manualmente com o dispositivo automotivo por meio de Bluetooth.
  3. Assim que o telefone estiver pareado, os contatos poderão ser acessados ​​no dispositivo.