Teste da plataforma Android

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 sua miríade de 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 Fundamentos de testes 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 do Repo Hooks , que pode executar linters, verificar a formatação e acionar testes de unidade antes de prosseguir, como o upload de um commit. Observe que esses ganchos estão desativados por padrão. Consulte a introdução do Repo Hooks para obter mais detalhes.

O que e como testar

Um teste de plataforma normalmente interage com um ou mais dos serviços do sistema Android, ou camadas de Hardware Abstraction Layer (HAL), exercita as funcionalidades do assunto em teste e afirma a exatidão do resultado do teste.

Como tal, um teste de plataforma pode:

  1. APIs de estrutura de exercício por meio de estrutura de aplicativo; APIs específicas 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 protegido, pacote privado)
  2. invocar serviços do sistema Android via fichário bruto/proxies IPC diretamente
  3. interagir diretamente com HALs por meio de APIs de baixo nível ou interfaces IPC

Os tipos 1 e 2 são geralmente escritos como testes de instrumentação , enquanto o tipo 3 é geralmente escrito como GTests .

Para saber mais, veja nossos exemplos completos:

Familiarize-se com essas ferramentas, pois elas são intrínsecas aos testes no Android.

Conjunto de Teste de Compatibilidade (CTS)

Android Compatibility Test Suite é um conjunto de vários tipos de testes, usados ​​para garantir a compatibilidade de implementações de 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 CTS e de plataforma não são mutuamente exclusivos, e aqui estão algumas diretrizes gerais:

  • se um teste está afirmando a exatidão das funções/comportamentos da API de estrutura e deve ser aplicado em parceiros OEM, deve estar no CTS
  • se um teste for destinado a capturar regressões durante o ciclo de desenvolvimento da plataforma, e pode exigir permissão privilegiada para ser realizado, e pode ser dependente de detalhes de implementação (conforme divulgado no AOSP), deve ser apenas testes de plataforma

Conjunto de teste do fornecedor (VTS)

O Vendor Test Suite (VTS) automatiza o teste de kernel HAL e OS. 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 de código integrado da plataforma Android ao desenvolver recursos no nível da plataforma.