O Compatibility Test Suite (CTS) é um conjunto de testes de nível comercial gratuito, disponível para download como um binário ou como 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 de unidade 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 fragmentar testes em vários dispositivos em teste (DUTs). Você também pode usar o recurso de repetição do conjunto para tentar novamente apenas as falhas em vez dos conjuntos completos, reduzindo bastante o tempo de reexecução.
- Casos de teste individuais são executados no DUT. Os casos de teste são escritos em Java como testes JUnit e arquivos .apk Android empacotados para serem executados no destino do dispositivo real.
O Compatibility Test Suite Verifier (CTS Verifier) é um suplemento 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, acelerômetro, etc).
O CTS Verifier é uma ferramenta para testes manuais e inclui os seguintes componentes de software:
O aplicativo verificador CTS que é executado no DUT e coleta os resultados.
Os executáveis ou scripts que são 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:
- Testes unitários testam unidades atômicas de código dentro da 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.
- 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 a compatibilidade:
Área | Descrição |
---|---|
Testes de assinatura | Para cada versão do Android, há 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 resultado 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, atributo e assinaturas de método, 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 Dalvik Executable Format. |
Modelo de dados da plataforma | O CTS testa o modelo de dados da plataforma principal conforme exposto aos desenvolvedores de aplicativos por meio de provedores de conteúdo, conforme documentado no pacote SDK android.provider : contatos, navegador, configurações etc. |
Intenção da plataforma | O CTS testa as intenções principais da plataforma, conforme documentado nas intenções disponíveis do SDK. |
Permissões da plataforma | O CTS testa as permissões da plataforma principal, conforme documentado nas Permissões Disponíveis do SDK. |
Recursos da plataforma | O CTS testa o manuseio correto dos tipos de recursos da plataforma principal, conforme documentado no SDK Available Resource Types . Isso inclui testes para: valores simples, drawables, nove patches, animações, layouts, estilos e temas e carregamento de recursos alternativos. |