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 os dispositivos em teste (DUTs, na sigla em inglês) de acordo com a configuração do 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 máquina host Linux e descompacte-os no local do host.
  4. Conecte pelo menos um dispositivo. Para preparar o DUT:
    • Pressione o botão home para definir o dispositivo na 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 CTS na pasta em que o pacote CTS foi descompactado. No shell de 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, é possível fragmentar os testes em vários dispositivos. A fragmentação exige que o host conecte pelo menos dois dispositivos, mas seis ou mais dispositivos são recomendados para aumentar a eficiência. Ao dividir mais de um dispositivo:

      • Para o 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 conjunto de testes, execute o plano CTS de sua escolha na linha de comando:

      run cts --plan test_plan_name

      Para encontrar o nome do plano de teste:

      • Para o Android 7.0 e versões mais recentes, para conferir uma lista de módulos de teste, digite

        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 o Android 6.0 e versões anteriores, para conferir uma lista de pacotes de teste no repositório, digite

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

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

    • No Android 9 e versões mais recentes, use

      run retry --retry session_number --shard-count number_of_shards
    • Para o 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. Os testes parametrizados aprovados não são tentados novamente.

    • 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 e os resultados do teste informados no console.

Executar o CTS usando a Android Test Station

A Android Test Station é uma ferramenta de automação de testes que os desenvolvedores Android e engenheiros de testes podem usar para empregar uma interface do usuário e 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 que módulos de teste com a opção de configuração abaixo sejam executados em diferentes estados de um dispositivo dobrável. A execução do teste é automática no CTS com base nos estados de dobramento da tela definidos 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 em vários dispositivos que são acionados automaticamente quando o sharding é usado. Embora o teste não exija outras mudanças 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.

Executar testes em vários dispositivos

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.