Executar testes CTS

O Trade Federation é um framework de teste contínuo para executar testes em dispositivos Android. Para executar o conjunto de teste de compatibilidade (CTS), leia primeiro a Visão geral da Trade Federation para uma explicação do framework de teste da Tradefed.

Para executar um plano de teste:

  1. Configure dispositivos em teste (DUTs, na sigla em inglês) de acordo com Configuração de dispositivo Android.
  2. Verifique se você instalou as versões recentes do Android Debug Bridge (adb) e da Android Asset Packaging Tool (AAPT) e adicionou o local dessas ferramentas ao caminho do sistema da sua máquina. Para informações sobre a instalação dessas ferramentas, consulte Como configurar o CTS: ADB e AAPT.
  3. Faça o download dos builds do CTS lançados na sua máquina host Linux e descompacte o build para hospedar o local.
  4. Conecte pelo menos um dispositivo. Para preparar o DUT:
    • Pressione o botão home para definir o dispositivo como a tela inicial.
    • Não use o DUT para outras tarefas.
    • Mantenha o DUT em uma posição estacionária para evitar acionar a atividade do sensor.
    • Aponte a câmera do dispositivo para um objeto que possa ser focado.
    • Não pressione nenhuma tecla no dispositivo enquanto o CTS estiver em execução. Pressionar teclas ou tocar na tela de um DUT interfere nos testes em execução e pode levar a falhas.
  5. Inicie o script cts-tradefed do console do CTS na pasta em que o CTS O pacote foi descompactado. No shell da linha de comando do host, execute:

    ./android-cts/tools/cts-tradefed
  6. Execute o plano de teste padrão (contém todos os pacotes de teste):

    cts-tradefed > run cts
    • Se você quiser melhorar o tempo de execução do teste, fragmentar os testes em vários dispositivos. A fragmentação exige que o host conecte pelo menos dois dispositivos, mas seis ou mais são recomendados por questão de eficiência. Ao fragmentar mais de um dispositivo:

      • No Android 9 e versões mais recentes, use a opção de comando

        --shard-count number_of_shards
      • Para o Android 8.1 e versões anteriores, use a opção de comando

        --shards number_of_shards
    • Se você não quiser executar todo o pacote de testes, poderá executar o Plano CTS de sua escolha a linha de comando:

      run cts --plan test_plan_name

      Para encontrar o nome do plano de teste:

      • No Android 7.0 e superior, para ver uma lista de módulos de teste, insira

        list modules
      • Para o Android 6.0 e versões anteriores, para conferir uma lista de planos de teste no repositório, digite

        list plans
      • Para Android 6.0 e anteriores, para ver uma lista de pacotes de teste no repositório, insira

        list packages
    • Para mais opções de comando dependendo das versões do CTS, consulte a referência de comandos do console, ou em "ajudar a todos" no console do Tradefed.

  7. Execute várias sessões de repetição até que todos os módulos de teste estejam concluídos e a os números de falhas de teste são os mesmos nas duas últimas sessões de repetição.

    • Para o Android 9 e versões mais recentes, use

      run retry --retry session_number --shard-count number_of_shards
    • Para Android 7.0 a 8.1, use

      run cts --retry session_number --shards number_of_shards
    • Para outras opções de comando de repetição, dependendo da versão do CTS, consulte Console de comando do CTS v2.

    • Para entender os detalhes da implementação da nova tentativa do CTS, consulte Nova tentativa do Trade Federation Suite.

  8. Execute uma sessão de nova tentativa apenas em testes parametrizados com falha. Aprovado os testes parametrizados não serão executados de novo.

    • No Android 11 e versões mais recentes, a seguinte opção de comando de nova tentativa é ativada por padrão no comando run cts:

      run retry --retry  --new-parameterized-handling
  9. Confira o progresso do teste e os resultados relatados no console.

Executar o CTS usando a Android Test Station

A Android Test Station é uma ferramenta de automação de testes que desenvolvedores e engenheiros de teste do Android podem usar para empregar uma interface do usuário para executar conjuntos de testes padrão. Ele funciona com o Conjunto de teste de compatibilidade do Android (CTS).

A ferramenta está disponível publicamente no Guia do usuário do ATS, e o código dela é de código aberto no AOSP (multitest_transport, tradefed_cluster).

Executar o CTS para modos alternativos

A versão CTS 10 R4 adiciona um plano de teste para dispositivos com modos alternativos ou com mais de uma tela. Execute o plano de teste de modos alternativos usando run cts-foldable:

Os casos de teste aprovados ou reprovados para o modo de tela alternativo são anexados com o valor de display_mode, por exemplo, testcase1[display_mode=0].

No CTS 13, a API DeviceStateManager permite módulos de teste com os seguintes a opção de configuração a ser executada em diferentes estados de um dispositivo dobrável. A execução do teste é automática no CTS com base nos estados de dobra da tela definido no dispositivo sem a necessidade de executar o plano de teste cts-foldable.

<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />

Testes multidispositivo no CTS

O Android 13 e versões mais recentes oferecem suporte a testes em vários dispositivos. Os testes que exigem vários dispositivos são executados automaticamente durante a execução do CTS. O CTS 13 inclui alguns testes para vários dispositivos que são acionados automaticamente ao fragmentar é usado. Embora o teste não exija mudanças adicionais na configuração física, o virtualenv precisa ser instalado para que os testes sejam executados corretamente. Para mais detalhes, consulte Pacotes para vários dispositivos.

Realizar testes multidispositivo

Para executar testes em vários dispositivos de forma independente, use o seguinte código:

  cts-tradefed > run cts-multidevice
  

Todas as opções regulares são aceitas. Para segmentar dispositivos específicos, adicione --serial <serial1> --serial <serial2> e assim por diante para o número de dispositivos segmentados.

Para acionar testes em vários dispositivos automaticamente, use o sharding, como em --shard-count 2.