Perguntas frequentes sobre CTS

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

Questões gerais

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

Que tipo de coisas o CTS testa?

O CTS testa se todas as APIs de tipo forte do Android suportadas estão presentes e se comportam corretamente. O CTS também testa outros comportamentos do sistema não API, como ciclo de vida e desempenho do aplicativo.

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 fornece perguntas frequentes que ajudam a executar testes CTS com mais eficiência.

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

CTS Sharding e TF Sharding são planos de teste totalmente diferentes, alimentados por diferentes bases de código de infraestrutura de teste. Embora o comando run seja o mesmo em diferentes versões, o resultado da fragmentação se comporta de maneira diferente. A fragmentação CTS atribui estaticamente casos de teste a dispositivos em teste (DUTs) da seguinte forma:

O TF Sharding atribui dinamicamente casos de teste aos DUTs disponíveis da seguinte forma:

O que se espera de um dispositivo que suporta múltiplas ABIs?

O dispositivo deve passar em todos os testes CTS e CTS Verifier para cada modo ABI que afirma suportar. Portanto, é necessário executar um aplicativo para as ABIs específicas. As diretrizes para múltiplas ABIs são as seguintes:

  • Para CTS e CTS Verifier, existem versões ARM e x86 para cada arquitetura. Cada um deles pode suportar o modo de 32 ou 64 bits.
  • Para testes CTS, se um dispositivo suportar ARM e x86, ele deverá executar e passar nos testes ARM e x86 CTS, respectivamente.

Consulte CDD 3.3.1. Interfaces binárias de aplicativos para requisitos de 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 aplicativo Android é executado em tempos de execução próprios de 32 ou 64 bits. O código de máquina real, 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 relatados como Não Executados?

Você deve verificar o número do Módulo Concluído em vez do número Não Executado .

Nas versões anteriores, os módulos CTS eram relatados como Módulo Concluído de forma muito agressiva antes de serem concluídos. Portanto, um número de Módulos Concluídos foi relatado sem que todos os casos de teste fossem concluídos, mesmo quando alguns dispositivos apresentavam problemas. O novo equipamento de teste é mais conservador e relata um número maior de testes não executados quando ocorre um problema.

Um módulo executado até a conclusão relata 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 todos os testes esperados para o módulo foram realizados.
  • Nova tentativa (usando a opção -r/--retry ) com opções de filtragem adicionais, como:

    • --include-filtro
    • --excluir-filtro
    • -t/--test (opção ainda não suportada na nova tentativa)
    • --retry-type falhou
    • --subplano

Para obter um status de Módulo Concluído (done="true") para esses módulos, tente novamente 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

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

Como posso evitar falhas na preparação do teste atrás do firewall corporativo?

Todos os conjuntos de testes automatizados tentam fazer download dos arquivos de mídia 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 ao .profile (no Ubuntu).

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

Preciso de um cartão SIM para CTS for Secure Element?

A necessidade de um cartão SIM para o teste depende da compreensão se o recurso é compatível com o dispositivo de teste.

  • Se o seu dispositivo NÃO precisa suportar aplicativos Android que acessam elementos seguros - seja no UICC (por exemplo, um cartão SIM) distribuído pelas operadoras de rede móvel (operadoras) ou incorporado no dispositivo - você pode configurar o manifesto HIDL para não incluir o elemento HAL android.hardware.secure_element . Nesse caso, a API android.se.omapi.SEService.getReaders() relata uma lista vazia e o teste CTS passa automaticamente e relata uma aprovação para o CTS.
  • Se o seu dispositivo PRECISA suportar aplicativos Android que acessam elementos seguros - seja no UICC (por exemplo, um cartão SIM) distribuído pelas operadoras de rede móvel (operadoras) ou incorporados no dispositivo - você precisa implementar o elemento seguro corretamente e testá-lo internamente. Teste CTS para Elemento Seguro descreve como se preparar para executar os testes CTS que garantem que o pacote de API android.se.omapi adicionado no Android 9 esteja funcional. Também recomendamos a realização de testes adicionais por conta própria, pois a cobertura do teste CTS é mínima.

Onde posso obter os cartões SIM para CTS for Secure Element?

Você pode entrar em contato com seu fornecedor de SIM preferido.

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

O caso de teste não inicia porque o teste do cartão SIM está bloqueado. Desative Bloquear cartão SIM em **Configurações de bloqueio do cartão SIM antes de executar o CTS com fragmentação de token.