O Programa de compatibilidade do Android é o principal fator para manter o feedback positivo do ecossistema Android. O CTS é a principal ferramenta para garantir a qualidade da compatibilidade em escala. A equipe do 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.
Perguntas gerais
Esta seção contém 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 de apps e a performance.
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 oferece perguntas frequentes que ajudam a executar testes do CTS com mais eficiência.
Qual é a diferença entre o CTS Sharding e o TF Sharding?
O CTS Sharding e o TF Sharding são planos de teste totalmente diferentes com base em bases de código de infraestrutura de teste diferentes. Embora o comando de execução seja o mesmo em diferentes versões, o resultado do sharding se comporta de maneira diferente. O sharding do CTS atribui casos de teste a dispositivos em teste (DUTs) de forma estática da seguinte maneira:
- Comando: run cts
- Configuração para Android 8.1 e versões anteriores: /tools/cts-tradefed/res/config/cts.xml
O TF Sharding atribui dinamicamente casos de teste aos DUTs disponíveis da seguinte maneira:
- Comando: run cts
- Configuração para Android 9: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
O que se espera de um dispositivo que oferece suporte a várias ABIs?
O dispositivo precisa passar em todos os testes do CTS e do CTS Verifier para cada modo de ABI que ele 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 pode oferecer suporte ao modo de 32 ou 64 bits.
- Para testes do CTS, se um dispositivo for compatível com ARM e x86, ele precisará executar e passar nos testes do CTS ARM e x86, respectivamente.
Consulte CDD 3.3.1. Interfaces binárias do aplicativo para requisitos do CDD na ABI.
É suficiente executar um teste apenas na ABI principal (por exemplo, 64 bits) para reduzir o tempo de execução do teste?
Não.Um app Android é executado nos próprios tempos de execução de 32 ou 64 bits. O código de máquina, o caminho de código e o estado reais são diferentes entre 32 e 64. Se você pular um modo, vai cobrir apenas 50% da ABI do dispositivo.
Por que há tantos casos de teste informados como "Não executados"?
Verifique o número Módulo concluído em vez de Não executado.
Nas versões anteriores, os módulos do 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 informado sem que todos os casos de teste fossem concluídos, mesmo quando alguns dispositivos apresentavam problemas. A nova estrutura de teste é mais conservadora e informa um número maior de testes Não executados quando ocorre um problema.
Uma execução de módulo concluída informa Módulo não concluído na invocação mais recente (done="false") no relatório durante o seguinte:
- Um teste do módulo foi interrompido por um problema de conexão do dispositivo.
- Nem todos os testes esperados para o módulo foram realizados.
Tentativa novamente (usando a opção
-r/--retry
) com outras opções de filtragem, como:- --include-filter
- --exclude-filter
- -t/--test (opção ainda não disponível para novas tentativas)
- --retry-type falhou
- --subplan
Para receber o status Módulo concluído (done="true") para esses módulos, tente o seguinte na 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/SO.
O módulo pode ser executado novamente de forma isolada diretamente pelo
run cts -m CtsNNAPITestCases
.
Como posso evitar que a preparação para o teste fique atrás do firewall corporativo?
Todos os conjuntos de testes automatizados tentam baixar os arquivos de mídia do CTS ou os arquivos de lógica de negócios durante a 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 seguinte linha ou adicione-a a .profile (no Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
Preciso de um chip para o CTS para elemento seguro?
A necessidade de um chip para o teste depende da compreensão de se o recurso é compatível com o 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 pelas operadoras de rede móvel
(operadoras) ou incorporado ao dispositivo, configure o manifesto
HIDL para não incluir o elemento
android.hardware.secure_element
HAL. 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 PRECISAR oferecer suporte a apps Android que acessam elementos seguros, seja no UICC (por exemplo, um chip) distribuído pelas operadoras de rede móvel ou incorporado ao dispositivo, implemente e teste o elemento seguro internamente. O teste do CTS para elemento seguro descreve como se preparar para executar os testes do CTS que garantem que o pacote da API android.se.omapi adicionado no Android 9 está funcional. Também recomendamos realizar testes adicionais por conta própria, já que a cobertura de testes do CTS é mínima.
Onde posso conseguir os chips para o CTS para Elemento de segurança?
Entre em contato com o fornecedor de chip que você preferir.
Por que o chip da Orange aparece na tela de bloqueio durante a execução do CTS com fragmentação de token?
O caso de teste não é iniciado porque o teste do chip está bloqueado. Desative o Bloquear chip nas **Configurações de bloqueio do chip** antes de executar o CTS com fragmentação de token.