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 agilizar e executar testes automotivos com configuração mínima. CATBox é escaloná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 e ao usar um dispositivo complementar.

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 Comercial .

Estrutura de teste automotivo

CATBox é baseado em uma estrutura de teste automotivo chamada 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 construir testes de UI que interagem com aplicativos do usuário e do sistema.

Downloads do conjunto de testes CATBox

Andróide 14

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

Andróide 12

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

Android 11

Android 11 é o lançamento do marco de desenvolvimento de codinome R. Use os links a seguir para baixar os conjuntos de testes CATBox para 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 o Device Target com base na arquitetura do dispositivo e execute o seguinte comando:

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

    make catbox
    

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

Configure o ambiente

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

Configure e execute CATBox

Use a estrutura de teste Tradefed para executar os testes em dispositivos Android. Antes de configurar o CATBox, consulte Visão geral da Federação Comercial .

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

Configure o 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 de ter adicionado a localização dessas ferramentas ao caminho do sistema da 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, vá para Configurações > Sistema > Opções de redefinição > 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:

      adb -s DEVICE_SERIAL root
      

      Substitua DEVICE_SERIAL pelo ID serial do dispositivo automotivo.

    5. Conecte-se ao Wi-Fi.

Extraia o pacote CATBox

Após configurar o dispositivo, descompacte o pacote CATBox e vá para a pasta extraída:

unzip android-catbox.zip
cd android-catbox

Execute testes no CATBox

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

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

Substitua DEVICE_SERIAL pelo ID serial 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 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 testes funcionais disponíveis.

Planos de testes funcionais Descrição
catbox-functional Testes funcionais.
catbox-functional-app-info-setting Testes funcionais de configuração de informações do aplicativo.
catbox-functional-admin-user-grant-permissions Usuário administrador concede permissões para testes funcionais.
catbox-functional-app-info-setting-ui-elements Testes funcionais de configuração de informações do aplicativo.
catbox-functional-appgrid Testes funcionais de grade de aplicativos.
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 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 Configuração de data e hora de testes funcionais.
catbox-functional-dial Disque 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 Habilite testes funcionais de opção de desenvolvedor.
catbox-functional-home Testes funcionais domésticos.
catbox-functional-lock-screen Testes funcionais de tela de bloqueio.
catbox-functional-mediacenter Testes funcionais do Media Center.
catbox-functional-microphone-recent-apps Testes funcionais de configuração de microfone.
catbox-functional-microphone-setting Testes funcionais de configuração de 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ção de rede.
catbox-functional-notification Testes funcionais de notificação.
catbox-functional-privacy-permission-manager Testes funcionais de configuração de permissão de aplicativo de privacidade.
catbox-functional-privacy-setting Testes funcionais de configuração de microfone.
catbox-functional-privacy-setting-ui-elements Testes funcionais de configuração 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ção de segurança.
catbox-functional-setting Configuração de testes funcionais.
catbox-functional-settings-location Configurando 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ção do sistema.
catbox-functional-systemui Testes de IU 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 de inicialização de aplicativo a frio para discador e telefone.
catbox-performance-cold-app-start-up-mediacenter Teste de desempenho de inicialização de aplicativo a frio para Media Center.
catbox-performance-cold-app-start-up-settings Teste de desempenho de inicialização fria do aplicativo para configurações.
catbox-performance-create-and-switch-to-new-guest Meça a latência para mudar para um novo convidado.
catbox-performance-create-and-switch-to-new-user Meça a latência para mudar para um novo usuário não administrador.
catbox-performance-hot-app-start-up-dialer Teste de desempenho de inicialização de aplicativo quente para discador e telefone.
catbox-performance-hot-app-start-up-mediacenter Teste de desempenho de inicialização de aplicativo quente para Media Center.
catbox-performance-hot-app-start-up-settings Teste de desempenho de inicialização de aplicativo 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 desempenho para mídia.
catbox-performance-jank-media-switch-playback Teste de desempenho para reprodução de troca de mídia.
catbox-performance-jank-notifications Teste de desempenho para Notificações.
catbox-performance-jank-settings Teste de desempenho para configurações.
catbox-performance-switch-to-existing-user Meça a latência para mudar para um usuário existente.

Execute o teste do lado do host multidispositivo

A execução de testes no lado do host multidispositivo usa 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

CATBox instala o apk e então o teste é executado no ambiente de execução correto do Python.

Revise os resultados do teste CATBox

Os resultados dos testes funcionais e de desempenho são salvos em android-catbox/results/latest .

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