Teste da plataforma Android

Este conteúdo é voltado para desenvolvedores da plataforma Android. Antes de entender como os testes são feitos na plataforma Android, consulte a arquitetura da plataforma Android para obter uma visão geral.

Em seguida, aprofunde-se nas tecnologias específicas disponíveis nesta seção, como o Vendor Test Suite (VTS) e seus inúmeros vídeos e tutoriais de 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 Codelab de testes do Android 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 prosseguir, como enviar um commit. Observe que esses ganchos estão desabilitados por padrão. Veja a introdução do Repo Hooks para 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 camada de abstração de hardware (HAL), exercita as funcionalidades do assunto em teste e afirma a correção do resultado do teste.

Como tal, um teste de plataforma pode:

  1. exercitar APIs de estrutura 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 diretamente por meio de proxies raw binder/IPC
  3. 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 geralmente escritos 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 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 Android entre parceiros OEM e entre versões de plataforma. O pacote também inclui testes de instrumentação e a estrutura GTest.

Os testes CTS e de 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 entre 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 ser executado e pode depender de detalhes de implementação (conforme divulgado no AOSP), devem ser apenas testes de plataforma

Conjunto de testes de fornecedores (VTS)

O Vendor Test Suite (VTS) automatiza os testes de HAL e kernel do sistema operacional. Para usar o VTS para testar uma implementação de sistema Android integrada, configure um ambiente de teste e teste um patch usando um plano VTS.

Infraestrutura de testes da Federação do Comércio

Trade Federation (Tradefed ou TF, abreviadamente) é uma estrutura de teste contínuo projetada para executar testes em dispositivos Android. O TF pode executar testes funcionais localmente, em sua mesa, no checkout da 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 em nível de plataforma.