Faça testes automotivos em uma caixa

O Complete Automotive Tests in a Box (CATBox) é um pacote de código aberto que oferece as estruturas e ferramentas necessárias para simplificar e executar modelos com configuração mínima. O CATBox é escalonável e compatível com as ferramentas, a infraestrutura e os testes usados para testar e validar as Implementações do Automotive OS (AAOS). Como resultado, você pode fornecer insights de alta qualidade mais produtos ao mercado.

Design e implementação do CATBox

O pacote de testes CATBox oferece as ferramentas, frameworks e testes necessários para executar testes funcionais e de desempenho em um dispositivo automotivo alvo e ao usar um dispositivo complementar.

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

Caixa de CAT

Figura 1. Pacote CATBox

Tradefed

O Tradefed é um framework de teste contínuo de código aberto usado para executar testes em Dispositivos Android. Para mais detalhes, consulte a Visão geral do Trade Federation.

Estrutura de testes automotivos

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

Downloads do pacote de testes CATBox

Android 14

O Android Automotive 14 é o lançamento do o marco de desenvolvimento codinome U. Use os links a seguir para fazer o download Conjuntos de testes do CATBox para o Android 14:

Android 12

O Android 12 é a versão do marco de desenvolvimento de codinome S. Use os links a seguir para fazer o download dos pacotes de teste CATBox para Android 12:

Android 11

O Android 11 é o lançamento do marco de desenvolvimento codinome R. Use o links abaixo para fazer o download dos pacotes de testes do CATBox para o Android 11:

Criar CATBox

Use o comando de build catbox quando o código AOSP do Android estiver disponível na estação de trabalho local.

Para criar o pacote CATBox localmente:

  1. Selecione o destino do dispositivo com base na arquitetura do dispositivo e execute o seguinte comando:

    lunch <target>
    
  2. Para criar o CATBox, execute o seguinte comando:

    make catbox
    

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

configurar o ambiente

A configuração do ambiente necessária para executar testes do CATBox é semelhante a Como configurar o CTS. Para configurar do ambiente de execução, conclua cada uma das tarefas a seguir:

Configurar e executar o CATBox

Use o framework de testes da Tradefed para executar os testes em dispositivos Android. Antes de você configurar o CATBox, consulte a Visão geral do Trade Federation.

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

Configurar o dispositivo

Antes de executar um plano de teste, siga estas etapas para configurar o dispositivo:

  1. Verifique se você instalou as versões recentes dos dois Android Debug Bridge (adb) e o Android Asset Packaging Tool (AAPT), além de adicionar o local dessas ferramentas no caminho do sistema do seu máquina virtual. Para mais detalhes, consulte ADB e AAPT.

  2. Conectar pelo menos um dispositivo e preparar o dispositivo em teste (DUT) como da seguinte forma:

    1. Para redefinir o dispositivo automotivo para a configuração original, acesse Configurações > Sistema > Opções de redefinição > Limpar todos os dados.

    2. Aguarde a reinicialização automática do dispositivo.

    3. Verifique se o adb está ativado. Para confirmar se o dispositivo está disponível, execute o seguinte comando:

      adb devices
      
    4. Para ativar a raiz, execute o seguinte comando:

      adb -s DEVICE_SERIAL root
      

      Substitua DEVICE_SERIAL pelo ID de série do um dispositivo automotivo.

    5. Conecte-se à rede Wi-Fi.

Extrair o pacote CATBox

Depois de configurar o dispositivo, descompacte o pacote CATBox e acesse a pasta extraída:

unzip android-catbox.zip
cd android-catbox

Executar testes no CATBox

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

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

Substitua DEVICE_SERIAL pelo ID de série do um dispositivo automotivo. Se você tiver vários dispositivos conectados à máquina host, use DEVICE_SERIAL para distingui-los. Substituir TEST_PLAN_NAME pelo nome do plano de teste que você quer; para ser executado.

Para ver a lista mais completa de planos disponíveis, use a linha de comando:

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

Tipos de planos de teste

A tabela a seguir exibe os planos de teste funcionais disponíveis.

Planos de testes funcionais Descrição
catbox-functional Testes funcionais.
catbox-functional-app-info-setting Testes funcionais da configuração de informações do app.
catbox-functional-admin-user-grant-permissions O usuário administrador concede testes funcionais de permissões.
catbox-functional-app-info-setting-ui-elements Testes funcionais da configuração de informações do app.
catbox-functional-appgrid Testes funcionais da grade de apps.
catbox-functional-base Lista de testes funcionais.
catbox-functional-bluetooth-audio Testes funcionais de áudio Bluetooth.
catbox-functional-bluetooth-palette Testes funcionais da barra de status.
catbox-functional-bluetooth-tests Testes de Bluetooth usando o Mobly.
catbox-functional-brightness-palette Testes funcionais da barra de status.
catbox-functional-btmoped Testes funcionais baseados em ciclomotores Bluetooth.
catbox-functional-date-time-setting Testes funcionais de configuração de data e hora.
catbox-functional-dial Ligar para testes funcionais.
catbox-functional-display-setting Exibir testes funcionais de configuração.
catbox-functional-driving-optimized-apps Testes funcionais de restrição de UX.
catbox-functional-enable-developers-option Ativar a opção de testes funcionais dos desenvolvedores.
catbox-functional-home Testes funcionais domésticos.
catbox-functional-lock-screen Testes funcionais da tela de bloqueio.
catbox-functional-mediacenter Testes funcionais do Media Center.
catbox-functional-microphone-recent-apps Testes funcionais de configuração do microfone.
catbox-functional-microphone-setting Testes funcionais de configuração do microfone.
catbox-functional-multiuser Testes funcionais multiusuários.
catbox-functional-multiuser-system-user Testes funcionais multiusuários.
catbox-functional-navigation-bar Testes funcionais da barra de navegação.
catbox-functional-network-palette Testes funcionais da barra de status.
catbox-functional-network-setting Testes funcionais de configuração de rede.
catbox-functional-notification Testes funcionais de notificação.
catbox-functional-privacy-permission-manager Testes funcionais da configuração da permissão do app de privacidade.
catbox-functional-privacy-setting Testes funcionais de configuração do microfone.
catbox-functional-privacy-setting-ui-elements Testes funcionais da configuração de privacidade.
catbox-functional-profile-icon Testes funcionais da barra de ícone de perfil.
catbox-functional-profiles-icon-list Testes da lista de ícones de perfis.
catbox-functional-security-setting Testes funcionais de configuração de segurança.
catbox-functional-setting Configurar testes funcionais.
catbox-functional-settings-location Configurando testes de local.
catbox-functional-sound-setting Testes funcionais de configuração de som.
catbox-functional-status-bar Testes funcionais da barra de status.
catbox-functional-storage-setting Testes funcionais de configuração de armazenamento.
catbox-functional-system-setting Testes funcionais de configuração do sistema.
catbox-functional-systemui Testes da interface do sistema.
catbox-functional-ux-restriction Testes funcionais de restrição de UX.
catbox-functional-ux-restriction-facet-bar Testes funcionais de restrição de UX.

A tabela a seguir lista os planos de teste de desempenho do CATBox.

Planos de teste de desempenho Descrição
catbox-performance-cold-app-start-up-dialer Teste de desempenho da inicialização a frio de um app para Telefone e Telefone.
catbox-performance-cold-app-start-up-mediacenter Teste de desempenho da inicialização a frio de apps para o Media Center.
catbox-performance-cold-app-start-up-settings Teste de desempenho de inicialização a frio para configurações.
catbox-performance-create-and-switch-to-new-guest Medir a latência para mudar para um novo convidado.
catbox-performance-create-and-switch-to-new-user Medir a latência para mudar para um novo usuário que não é administrador.
catbox-performance-hot-app-start-up-dialer Teste de desempenho de inicialização de app quente para Telefone e Telefone.
catbox-performance-hot-app-start-up-mediacenter Teste de desempenho da inicialização do app a quente para o Media Center.
catbox-performance-hot-app-start-up-settings Teste de desempenho da inicialização do app a quente para Configurações.
catbox-performance-jank-appgrid Teste de desempenho para o Appgrid.
catbox-performance-jank-contact-list Teste de desempenho do Contatos.
catbox-performance-jank-media Testes de desempenho para mídia.
catbox-performance-jank-media-switch-playback Teste de desempenho para reprodução do interruptor de mídia.
catbox-performance-jank-notifications Teste de desempenho para notificações.
catbox-performance-jank-settings Teste de desempenho para as Configurações.
catbox-performance-switch-to-existing-user Medir a latência para mudar para um usuário atual.

Executar o teste no lado do host de vários dispositivos

A execução de testes no lado do host de vários dispositivos usa o CATBox para executar o teste em uma sessão. Por exemplo, 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

O CATBox instala o apk e, em seguida, o teste é executado no Python correto. ou ambiente de execução.

Analisar os resultados do teste do CATBox

Os resultados das execuções de testes funcionais e de desempenho são salvos em android-catbox/results/latest:

Tipo de resultado Local
Resultados dos testes test_result.xml
Detalhes dos testes de falha test_result_failures_suite.html
Resultados das métricas de performance /report-log-files/CatboxPerformanceTests.reportlog.json
Execuções de testes funcionais e de desempenho /android-catbox/logs/latest