O Programa de compatibilidade do Android é o principal impulsionador para manter o feedback positivo do ecossistema do Android. O CTS é a principal ferramenta para garantir a qualidade da 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 contém perguntas frequentes 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 o fragmentação do CTS e a fragmentação do 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. Embora o comando de execução seja o mesmo em diferentes versões, o resultado do 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:
- Comando: run cts
- Configuração para Android 8.1 e versões anteriores: /tools/cts-tradefed/res/config/cts.xml
O fragmentação do TF 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 compatível com várias ABIs?
O dispositivo precisa passar em todos os testes do CTS e do verificador do CTS 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 os 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 principal (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 como Module Done 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 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 todos os testes esperados para o módulo foram realizados.
Tentar novamente (usando a opção
-r/--retry
) com outras opções de filtragem, como:- --include-filter
- --exclude-filter
- -t/--test (a opção ainda não é compatível com a nova tentativa)
- --retry-type com falha
- --subplan
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 do teste por causa do 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 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 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 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 no 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 (transportadoras) ou incorporado ao dispositivo, é necessário implementar o elemento de forma segura e testar internamente. O Teste do CTS para elemento seguro descreve como se preparar para executar os testes do CTS que garantem que o pacote de API android.se.omapi adicionado no Android 9 seja funcional. 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 Orange está na tela de bloqueio durante a execução do CTS com fragmentação de token?
O caso de teste não é iniciado 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.