Perguntas frequentes sobre o CTS

O Programa de compatibilidade do Android é o principal impulsionador para manter o feedback positivo para o ecossistema Android. O CTS é a principal ferramenta para garantir a qualidade de compatibilidade na escala. A equipe do Android continua melhorando a cobertura de teste e a ferramenta CTS. A adição regular de casos de teste melhora significativamente a qualidade dos dispositivos compatíveis.

Perguntas gerais

Esta seção fornece perguntas frequentes gerais sobre o CTS.

O que o CTS testa?

O CTS testa se todas as APIs de tipos fortes com suporte ao Android estão presentes e se comportam corretamente. O CTS também testa outros comportamentos do sistema que não são APIs, como o ciclo de vida e a performance do app.

Como o CTS é licenciado?

O CTS é licenciado sob a mesma Licença de Software Apache 2.0 que a maior parte do Android usa.

Os codecs são verificados pelo CTS?

Sim. Todos os codecs obrigatórios são verificados pelo CTS.

Perguntas específicas do teste

Esta seção apresenta perguntas frequentes que ajudam a executar testes CTS com mais eficiência.

Qual é a diferença entre a fragmentação de CTS e TF?

O fragmentação do CTS e do TF são planos de teste totalmente diferentes, com base de código de infraestrutura de teste diferente. O comando de execução é o mesmo em versões diferentes, mas o resultado da fragmentação se comporta de maneira diferente. O fragmentação do CTS atribui estaticamente casos de teste a dispositivos em teste (DUTs, na sigla em inglês) da seguinte maneira:

O fragmentação do TF atribui dinamicamente casos de teste aos DUTs disponíveis da seguinte maneira:

O que se espera de um dispositivo com suporte a várias ABIs?

O dispositivo precisa passar em todos os testes do CTS e do verificador do CTS para cada modo de ABI que afirma oferecer suporte. Portanto, é necessário executar um app para as ABIs específicas. As diretrizes para várias ABIs são as seguintes:

  • Para o CTS e o CTS Verifier, há versões ARM e x86 para cada arquitetura. Cada um deles oferece suporte ao modo de 32 ou 64 bits.
  • Para testes do CTS, se um dispositivo oferece suporte a ARM e x86, ele precisa executar e passar nos testes do CTS ARM e x86, respectivamente.

Consulte o CDD 3.3.1. Interfaces binárias do aplicativo para requisitos do CDD na ABI.

É suficiente executar um teste apenas na ABI primária (por exemplo, 64 bits) para reduzir o tempo de execução do teste?

Não. Um app Android é executado nos próprios ambientes de execução de 32 ou 64 bits. O código da máquina, o caminho do código e o estado são diferentes entre 32 e 64. Se você pular um modo, estará cobrindo apenas 50% da ABI do dispositivo.

Por que há tantos casos de teste informados como "Não executados"?

Verifique o número Module Done em vez do número Not Executed.

Nas versões anteriores, os módulos do CTS eram informados de forma muito agressiva antes de serem concluídos como Module Done. Portanto, um número de Módulos concluídos foi informado sem que todos os casos de teste fossem concluídos, mesmo quando alguns dispositivos tiveram problemas. O novo harness de teste é mais conservador e informa um número maior de testes Not Executed quando ocorre um problema.

Uma execução de módulo para conclusão informa Módulo não concluído na invocação mais recente (done="false") no relatório durante o seguinte:

  • Uma execução de teste do módulo foi interrompida por um problema de conexão do dispositivo.
  • Nem todas as execuções de teste esperadas para o módulo foram realizadas.
  • Nova tentativa (usando a opção -r/--retry) com outras opções de filtragem, como:

    • "--incluir-filtro"
    • --exclude-filter
    • -t/--test (Opção ainda não compatível na nova tentativa)
    • --retry-type com falha
    • --subplano

Para receber um status de Módulo concluído (done="true") para esses módulos, tente o seguinte para a invocação mais recente:

run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions

Um módulo executado sem nenhum dos problemas mencionados anteriormente (mesmo com 0 testes restantes) é marcado como Módulo concluído no novo relatório.

Exceções

  • O CtsNNAPITestCases tem um problema conhecido devido à limitação de argumentos do Linux/OS. O módulo pode ser executado novamente de forma isolada usando run cts -m CtsNNAPITestCases diretamente.

Como posso evitar falhas na preparação para testes por trás de um firewall corporativo?

Todos os conjuntos de testes automatizados tentam fazer o download dos arquivos de mídia do CTS ou dos arquivos de lógica de negócios durante o tempo de execução. Em muitos ambientes corporativos, um firewall e um proxy são típicos, o que faz com que a preparação do teste falhe. Execute a linha a seguir ou adicione-a a .profile (no Ubuntu).

export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'

Preciso de um chip para o CTS para elemento de segurança?

A necessidade de um chip para o teste depende da compreensão de se o recurso tem suporte no dispositivo de teste.

  • Se o dispositivo NÃO precisar oferecer suporte aos apps Android que acessam elementos seguros, seja no UICC (por exemplo, um chip) distribuído pelos operadores de rede móvel (operadoras) ou incorporado ao dispositivo, é possível configurar o manifesto HIDL para não incluir o elemento HAL android.hardware.secure_element. Nesse caso, a API android.se.omapi.SEService.getReaders() informa uma lista vazia, e o teste do CTS é aprovado automaticamente e informa uma aprovação para o CTS.
  • Se o dispositivo PRECISA oferecer suporte a apps Android que acessam elementos seguros, seja no UICC (por exemplo, um chip) distribuído pelos operadores de rede móvel (operadoras) ou incorporado ao dispositivo, é necessário implementar o elemento de forma segura e testar internamente. O guia Teste CTS para Elemento de segurança descreve como se preparar para executar testes de CTS que garantem que o pacote da API android.se.omapi adicionado ao Android 9 esteja funcionando. Também recomendamos realizar outros testes por conta própria, já que a cobertura do teste do CTS é mínima.

Onde posso comprar os chips para o CTS para o elemento de segurança?

Entre em contato com o fornecedor de chips que você preferir.

Por que o chip laranja está na tela de bloqueio durante a execução do CTS com fragmentação de token?

O caso de teste não começa porque o chip está bloqueado. Desative o Bloqueio do chip nas **configurações de bloqueio do chip antes de executar o CTS com fragmentação de token.