Otimizar o CTS

O conjunto de teste de compatibilidade do Android (CTS) oferece milhões de testes individuais. Embora seja necessário executar o CTS com frequência durante a fase de desenvolvimento do software, é possível reduzir o tempo necessário para executar esses testes.

Esta página descreve métodos que podem ser usados para reduzir o tempo de execução de testes e como otimizar os recursos de hardware no processo.

Fragmentar dispositivos

Para reduzir o tempo de ciclo, considere executar o CTS em vários dispositivos (fragmentação). Para ver como a fragmentação pode ser usada, consulte Executar testes de CTS.

Estação de teste do Android

Use a Android Test Station (ATS) para empregar uma interface do usuário para executar conjuntos de testes Android padrão. Essa ferramenta serve como uma interface da Web para a Trade Federation (TF), permitindo que você execute o CTS com uma configuração mínima em um conjunto de dispositivos de teste, além de estabelecer uma programação para executar testes continuamente.

A estação de teste do Android oferece suporte ao modo de vários hosts, em que um único host de controle do ATS pode ser usado para gerenciar dispositivos e testes em vários hosts de trabalho do ATS.

Execução contínua do emulador

Para executar o CTS continuamente durante a fase de desenvolvimento, é possível usar os Dispositivos virtuais Android (AVD, na sigla em inglês) como substitutos do hardware. As regressões de falhas de teste podem ser identificadas com antecedência, economizando muito do tempo necessário para triagem e análise das causas raiz. Várias instâncias do emulador podem ser usadas para fragmentação e podem ser programadas para serem executadas continuamente com a estação de teste do Android.

Programa de qualidade do drawElements (dEQP)

O Programa de Qualidade drawElements (dEQP, na sigla em inglês) está incluído no CTS do Android. Chamado de CtsDepqTestCases, esse programa se concentra na cobertura de teste de gráficos do Android. Esse módulo representa quase 80% de todos os casos de teste no Android CTS e representa 6% do tempo total de execução.

Como os drivers gráficos do Android fazem parte do firmware do Android (BSP) e não mudam muito ao longo do desenvolvimento, é possível executar esse módulo de forma estratégica. Por exemplo, se você executar o CTS a cada duas semanas (ou menos) durante o desenvolvimento de software, com base na programação de atualização do firmware, é possível excluir esse módulo por vários ciclos.

Uma opção é executar o CtsDeqpTestCases separadamente em um conjunto de dispositivos e enviar os relatórios do CTS. Por exemplo, em dois hosts diferentes.

Host 1:

cts-tf > run cts --max-log-size 100 --shard-count 6 -o -m CtsDeqpTestCases

Host 2:

cts-tf > run cts --max-log-size 100 --shard-count 6 -o --exclude-filter CtsDeqpTestCases

Casos de teste de mídia

Os casos de teste de mídia verificam serviços multimídia, como áudio, vídeo e drivers de multimídia. Esses módulos de teste multimídia contribuem mais para o tempo de execução do CTS. Os atrasos podem ocorrer quando:

  • Fazer o download de arquivos de mídia ou reproduzir arquivos de mídia repetidamente durante os testes.
  • Novas tentativas de casos de teste com falha.

O Android CTS contém estes módulos de teste:

  • CtsMediaStressTestCases
  • CtsMediaPlayerTestCases
  • CtsMediaAudioTestCases
  • CtsVideoTestCases
  • CtsMediaDecoderTestCases
  • CtsMediaCodecTestCases
  • CtsMediaV2TestCases

Execute alguns testes de mídia localmente ou em um servidor local. Para ver detalhes, consulte Executar testes de mídia CTS localmente.

O framework multimídia e os drivers (decodificadores e codificadores) fazem parte do firmware do Android (BSP). É possível executar esse módulo de forma estratégica e excluir esses módulos por vários ciclos, com base na programação de atualização do firmware.