O Compatibility Test Suite (CTS) é um conjunto de testes gratuito de nível comercial, disponível para download como binário ou como código-fonte no Android Open Source Project (AOSP) . O CTS representa o “mecanismo” de compatibilidade.
O CTS é executado em uma máquina desktop e executa casos de teste diretamente em dispositivos conectados ou em um emulador. O CTS é um conjunto de testes unitários projetados para serem integrados ao fluxo de trabalho diário (como por meio de um sistema de construção contínua) dos engenheiros que constroem um dispositivo. Sua intenção é revelar incompatibilidades desde o início e garantir que o software permaneça compatível durante todo o processo de desenvolvimento.
O CTS é um conjunto de testes automatizados que usa dois componentes principais de software:
- O equipamento de teste da CTS Trade Federation é executado em sua máquina desktop e gerencia a execução do teste. Ele oferece a capacidade de realizar testes de fragmentos em vários dispositivos em teste (DUTs). Você também pode usar o recurso de nova tentativa de conjunto para repetir apenas as falhas, em vez dos conjuntos completos, reduzindo bastante o tempo de nova execução.
- Casos de teste individuais são executados no DUT. Os casos de teste são escritos em Java como testes JUnit e arquivos Android .apk empacotados para serem executados no dispositivo de destino real.
O Compatibility Test Suite Verifier (CTS Verifier) é um complemento do CTS disponível para download . O CTS Verifier fornece testes para APIs e funções que não podem ser testadas em um dispositivo estacionário sem entrada manual (por exemplo, qualidade de áudio e acelerômetro) ou posicionamento manual.
O CTS Verifier é uma ferramenta para testes manuais e inclui os seguintes componentes de software:
O aplicativo verificador CTS que é executado no DUT (e em um segundo dispositivo para requisitos de medição de distância) e coleta os resultados.
Os executáveis ou scripts executados na máquina desktop para fornecer dados ou controle adicional para alguns casos de teste no aplicativo CTS Verifier.
Fluxo de trabalho
Este diagrama resume o fluxo de trabalho do CTS. Consulte as subpáginas desta seção, começando com Configuração , para obter instruções detalhadas.
Tipos de casos de teste
O CTS inclui os seguintes tipos de casos de teste:
- Os testes de unidade testam unidades atômicas de código na plataforma Android; por exemplo, uma única classe, como java.util.HashMap.
Os testes funcionais testam uma combinação de APIs em um caso de uso de nível superior.
- Os testes de robustez testam a durabilidade do sistema sob estresse.
- Os testes de desempenho testam o desempenho do sistema em relação a benchmarks definidos, por exemplo, renderização de quadros por segundo.
Áreas cobertas
Os casos de teste de unidade cobrem as seguintes áreas para garantir compatibilidade:
Área | Descrição |
---|---|
Testes de assinatura | Para cada versão do Android, existem arquivos XML que descrevem as assinaturas de todas as APIs públicas contidas na versão. O CTS contém um utilitário para verificar essas assinaturas de API em relação às APIs disponíveis no dispositivo. Os resultados da verificação de assinatura são registrados no arquivo XML de resultados do teste. |
Testes de API de plataforma | Teste as APIs da plataforma (bibliotecas principais e Android Application Framework), conforme documentado no SDK Class Index para garantir a correção da API, incluindo classe correta, assinaturas de atributos e métodos, comportamento correto do método e testes negativos para garantir o comportamento esperado para manipulação incorreta de parâmetros. |
Testes Dalvik | Os testes se concentram em testar o formato executável Dalvik. |
Modelo de dados de plataforma | O CTS testa o modelo de dados da plataforma central conforme exposto aos desenvolvedores de aplicativos por meio de provedores de conteúdo, conforme documentado no pacote Android.provider do SDK: contatos, navegador, configurações, etc. |
Intenções da plataforma | O CTS testa as principais intenções da plataforma, conforme documentado no SDK Available Intents . |
Permissões da plataforma | O CTS testa as permissões principais da plataforma, conforme documentado em SDK Available Permissions . |
Recursos da plataforma | O CTS testa o manuseio correto dos principais tipos de recursos da plataforma, conforme documentado em SDK Available Resource Types . Isso inclui testes para: valores simples, drawables, nove patches, animações, layouts, estilos e temas e carregamento de recursos alternativos. |