O Complete Automotive Tests in a Box (CATBox) é um pacote de código aberto que fornece as estruturas e ferramentas necessárias para simplificar e executar testes automotivos com configuração mínima. O CATBox é escalonável e compatível com as ferramentas, a infraestrutura e os testes que você usa para testar e validar suas implementações do Android Automotive OS (AAOS). Como resultado, você pode oferecer produtos de alta qualidade ao marketplace.
Design e implementação do CATBox
O conjunto de testes CATBox oferece as ferramentas, os frameworks e os testes necessários para executar testes funcionais e de desempenho em um dispositivo automotivo de destino e usando um dispositivo complementar.
A imagem a seguir ilustra um design de alto nível de um pacote CATBox.
 
Figura 1. Pacote CATBox
Tradefed
O Tradefed é um framework de testes contínuos de código aberto usado para executar testes em dispositivos Android. Para mais detalhes, consulte Visão geral do Trade Federation.
Framework de teste automotivo
O CATBox é baseado em um framework de teste automotivo chamado Spectatio, que fornece APIs para testar vários apps em dispositivos automotivos. Ele é criado com base no UI Automator, um framework de testes de código aberto que oferece um conjunto de APIs para criar testes de IU que interagem com aplicativos do usuário e do sistema.
Downloads do pacote de teste CATBox
Android 14
O Android Automotive 14 é o lançamento do marco de desenvolvimento com o codinome U. Use os links a seguir para baixar pacotes de teste do CATBox para o Android 14:
Android 12
O Android 12 é o lançamento do marco de desenvolvimento com o codinome S. Use os links a seguir para baixar os pacotes de teste 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 baixar os pacotes de teste do CATBox para o Android 11:
Criar CATBox
Use o comando de build catbox quando o código do AOSP Android estiver disponível na
estação de trabalho local.
Para criar o pacote CATBox localmente:
Selecione o destino do dispositivo com base na arquitetura dele e execute o comando a seguir:
lunch <target>Para criar o CATBox, execute o seguinte comando:
make catboxEsse comando cria o arquivo
android-catbox.zipno diretório/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 à configuração do CTS. Para configurar o ambiente, conclua cada uma das seguintes tarefas:
Instale o ADB e o AAPT.
Instale o JDK. Consulte Kit de desenvolvimento em Java para Ubuntu.
Aumente o limite de memória. Consulte Requisitos de armazenamento.
Configurar e executar o CATBox
Use o framework de teste Tradefed para executar os testes em dispositivos Android. Antes de 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 seu dispositivo:
Verifique se você instalou as versões mais recentes do Android Debug Bridge (adb) e do Android Asset Packaging Tool (AAPT), além de ter adicionado o local dessas ferramentas ao caminho do sistema da sua máquina. Para mais detalhes, consulte ADB e AAPT.
Conecte pelo menos um dispositivo e prepare o dispositivo em teste (DUT) da seguinte forma:
Para redefinir o dispositivo automotivo para a configuração original, acesse Configurações > Sistema > Opções de redefinição > Limpar todos os dados.
Aguarde o dispositivo reiniciar automaticamente.
Verifique se o adb está ativado. Para confirmar se o dispositivo está disponível, execute o comando a seguir:
adb devicesPara ativar o root, execute o seguinte comando:
adb -s DEVICE_SERIAL rootSubstitua
DEVICE_SERIALpelo ID serial do dispositivo automotivo.Conecte-se à rede Wi-Fi.
Extraia o pacote CATBox
Depois de configurar o dispositivo, descompacte o pacote CATBox e acesse a pasta extraída:
unzip android-catbox.zip
cd android-catboxExecutar 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_SERIALSubstitua DEVICE_SERIAL pelo ID serial do dispositivo automotivo. Se houver vários dispositivos conectados à máquina host, use DEVICE_SERIAL para diferenciá-los. Substitua
TEST_PLAN_NAME pelo nome do plano de teste que você quer
executar.
Para conferir a lista mais completa de planos disponíveis, use a linha de comando:
./tools/catbox-tradefed list plans | grep -i catboxTipos de planos de teste
A tabela a seguir mostra 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 | 
  Testes funcionais de permissões de concessão de usuário administrador. | 
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 | 
  Testes funcionais de discagem. | 
catbox-functional-display-setting | 
  Testes funcionais de configurações de exibição. | 
catbox-functional-driving-optimized-apps | 
  Testes funcionais de restrição de UX. | 
catbox-functional-enable-developers-option | 
  Ative os testes funcionais da opção de desenvolvedores. | 
catbox-functional-home | 
  Testes funcionais do Home. | 
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ário. | 
catbox-functional-multiuser-system-user | 
  Testes funcionais multiusuário. | 
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ções de rede. | 
catbox-functional-notification | 
  Testes funcionais de notificação. | 
catbox-functional-privacy-permission-manager | 
  Testes funcionais da configuração de 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 de configurações de privacidade. | 
catbox-functional-profile-icon | 
  Testes funcionais da barra de ícones de perfil. | 
catbox-functional-profiles-icon-list | 
  Testes de lista de ícones de perfis. | 
catbox-functional-security-setting | 
  Testes funcionais de configurações de segurança. | 
catbox-functional-setting | 
  Definir testes funcionais. | 
catbox-functional-settings-location | 
  Definindo testes de localização. | 
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ções 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 performance do CATBox.
| Planos de teste de desempenho | Descrição | 
|---|---|
catbox-performance-cold-app-start-up-dialer | 
  Teste de desempenho de inicialização a frio do app para o discador e o telefone. | 
catbox-performance-cold-app-start-up-mediacenter | 
  Teste de desempenho de inicialização a frio do app para a Central de mídia. | 
catbox-performance-cold-app-start-up-settings | 
  Teste de desempenho de inicialização a frio do app para configurações. | 
catbox-performance-create-and-switch-to-new-guest | 
  Medir a latência para mudar para um novo visitante. | 
catbox-performance-create-and-switch-to-new-user | 
  Medir a latência para mudar para um novo usuário sem privilégios de administrador. | 
catbox-performance-hot-app-start-up-dialer | 
  Teste de desempenho de inicialização de app quente para o discador e o telefone. | 
catbox-performance-hot-app-start-up-mediacenter | 
  Teste de desempenho de inicialização de app quente para a Central de mídia. | 
catbox-performance-hot-app-start-up-settings | 
  Teste de desempenho de inicialização de app quente para Configurações. | 
catbox-performance-jank-appgrid | 
  Teste de desempenho para Appgrid. | 
catbox-performance-jank-contact-list | 
  Teste de desempenho para contatos. | 
catbox-performance-jank-media | 
  Testes de performance para mídia. | 
catbox-performance-jank-media-switch-playback | 
  Teste de performance para reprodução de troca de mídia. | 
catbox-performance-jank-notifications | 
  Teste de performance para notificações. | 
catbox-performance-jank-settings | 
  Teste de performance para configurações. | 
catbox-performance-switch-to-existing-user | 
  Mede a latência para mudar para um usuário existente. | 
Executar o teste do lado do host em vários dispositivos
A execução de testes do lado do host em 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 BTDiscoveryTestO CATBox instala o apk e, em seguida, o teste é executado no ambiente de execução
do Python correto.
Analisar os resultados do teste 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 |