Este conteúdo é voltado para desenvolvedores da plataforma Android. Antes de entender como o teste é feito na plataforma Android, consulte a arquitetura da plataforma Android para obter uma visão geral.
Em seguida, aprofunde-se nas tecnologias precisas disponíveis para você nesta seção, como o Vendor Test Suite (VTS) e seus inúmeros tutoriais em vídeo e codelab .
Observe também os mecanismos de teste específicos de segurança disponíveis para detectar e proteger seus dispositivos contra vulnerabilidades.
Para testes de aplicativos, comece com os Fundamentos de teste e conduza o Android Testing Codelab usando os exemplos fornecidos.
Por fim, observe que o teste básico de pré-envio está disponível para você por meio de Repo Hooks que podem executar linters, verificar a formatação e acionar testes de unidade antes de continuar, como fazer upload de um commit. Observe que esses ganchos estão desabilitados por padrão. Consulte a introdução aos Repo Hooks para obter mais detalhes.
O que e como testar
Um teste de plataforma normalmente interage com um ou mais serviços do sistema Android, ou camadas de HAL (Hardware Abstraction Layer), exercita as funcionalidades do assunto em teste e afirma a correção do resultado do teste.
Como tal, um teste de plataforma pode:
- exercitar APIs de framework por meio de framework de aplicação; APIs específicas que estão sendo exercidas podem incluir:
- APIs públicas destinadas a aplicativos de terceiros
- APIs ocultas destinadas a aplicações privilegiadas, nomeadamente APIs de sistema
- APIs privadas (@hide, ou protected, package private)
- invoque os serviços do sistema Android por meio de proxies raw binder/IPC diretamente
- interagir diretamente com HALs por meio de APIs de baixo nível ou interfaces IPC
Os tipos 1 e 2 são normalmente escritos como testes de instrumentação , enquanto os tipos 3 são normalmente escritos como GTests .
Para saber mais, veja nossos exemplos de ponta a ponta:
Familiarize-se com essas ferramentas, pois elas são intrínsecas aos testes no Android.
Conjunto de testes de compatibilidade (CTS)
O Android Compatibility Test Suite é um conjunto de vários tipos de testes, usado para garantir a compatibilidade das implementações da estrutura do Android entre parceiros OEM e entre versões de plataforma. A suíte também inclui testes de instrumentação e o framework GTest.
Os testes de CTS e plataforma não são mutuamente exclusivos, e aqui estão algumas diretrizes gerais:
- se um teste estiver afirmando a correção das funções/comportamentos da API da estrutura e deve ser aplicado a todos os parceiros OEM, deve estar no CTS
- se um teste se destina a capturar regressões durante o ciclo de desenvolvimento da plataforma, e pode exigir permissão privilegiada para realizar, e pode depender de detalhes de implementação (conforme divulgado no AOSP), deve ser apenas testes de plataforma
Pacote de teste do fornecedor (VTS)
O Vendor Test Suite (VTS) automatiza os testes de kernel de HAL e SO. Para usar o VTS para testar uma implementação integrada do sistema Android, configure um ambiente de teste e teste um patch usando um plano VTS.
Infraestrutura de Testes da Federação de Comércio
Trade Federation (tradefed ou TF para abreviar) é uma estrutura de teste contínua projetada para executar testes em dispositivos Android. O TF pode executar testes funcionais localmente, em sua mesa, no checkout de sua plataforma. Existem dois arquivos necessários para executar um teste no TF, uma fonte de teste java e uma configuração XML. Consulte RebootTest.java e reboot.xml para obter exemplos.
Depuração
A seção Depuração resume ferramentas úteis e comandos relacionados para depuração, rastreamento e criação de perfil do código da plataforma Android integrada ao desenvolver recursos no nível da plataforma.