AOSP fornece diversas ferramentas e conjuntos de testes para testar várias partes de sua implementação. Antes de continuar com esta seção, você deve estar familiarizado com os seguintes termos:
- Dispositivo compatível com Android
- Um dispositivo que pode executar qualquer aplicativo de terceiros escrito por desenvolvedores de terceiros usando o Android SDK e o NDK. Os dispositivos compatíveis com Android devem atender aos requisitos do Documento de Definição de Compatibilidade (CDD) e passar no Conjunto de Testes de Compatibilidade (CTS) . Dispositivos compatíveis com Android são elegíveis para participar do ecossistema Android, que inclui licenciamento potencial da Google Play Store, licenciamento potencial do conjunto de aplicativos e APIs do Google Mobile Services (GMS) e uso da marca registrada Android. Qualquer pessoa pode usar o código-fonte do Android, mas para ser considerado parte do ecossistema Android, um dispositivo deve ser compatível com Android.
- artefato
- Os artefatos são logs relacionados ao build que permitem a solução de problemas locais.
- Documento de definição de compatibilidade (CDD)
- Um documento que enumera os requisitos de software e hardware para um dispositivo compatível com Android.
- Conjunto de testes de compatibilidade (CTS)
Um conjunto de testes gratuito de nível comercial, disponível para download como binário ou como fonte no AOSP. O CTS é um conjunto de testes unitários projetados para serem integrados ao seu fluxo de trabalho diário. A intenção do CTS é revelar incompatibilidades e garantir que o software permaneça compatível durante todo o processo de desenvolvimento.
Os testes CTS e de plataforma não são mutuamente exclusivos. Aqui estão algumas diretrizes gerais:
- Se um teste estiver afirmando a correção das funções ou comportamentos da API da estrutura e precisar ser aplicado entre parceiros OEM, ele deverá estar no CTS.
- Se um teste se destina a capturar regressões durante o desenvolvimento da plataforma e pode exigir permissão privilegiada para ser executado e pode depender de detalhes de implementação (conforme divulgado no AOSP), ele deve ser um teste de plataforma.
- Serviços móveis do Google (GMS)
Uma coleção de aplicativos e APIs do Google que podem ser pré-instalados em dispositivos.
- GoogleTest (GTest)
GTest é uma estrutura de teste e simulação C++. Os binários GTest normalmente acessam camadas de abstração de nível inferior ou executam IPC bruto em vários serviços do sistema. A abordagem de teste do GTest geralmente está intimamente ligada ao serviço que está sendo testado. CTS contém a estrutura GTest.
- teste de instrumentação
Um teste de instrumentação fornece um ambiente especial de execução de teste, conforme iniciado pelo comando
am instrument
, onde o processo do aplicativo de destino é reiniciado e inicializado com o contexto básico do aplicativo, e um thread de instrumentação é iniciado dentro da máquina virtual do processo do aplicativo. CTS contém testes de instrumentação.- Logcat
Logcat é uma ferramenta de linha de comando que cria um log de mensagens do sistema, incluindo rastreamentos de pilha de quando o dispositivo gera um erro e mensagens que você escreveu em seu aplicativo com a classe
Log
.- exploração madeireira
O registro refere-se ao uso de um registro para rastrear eventos do sistema do computador, como erros. O login no Android é complexo devido à combinação de padrões usados que são combinados na ferramenta Logcat.
- teste pós-envio
Os testes pós-envio do Android são realizados quando um novo patch é confirmado em uma ramificação comum do kernel. Ao inserir
aosp_kernel
como um nome de ramificação parcial, você pode ver uma lista de ramificações do kernel com resultados disponíveis. Por exemplo, os resultados paraandroid-mainline
podem ser encontrados em https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid .- pré-envio de teste
Testes de pré-envio são usados para evitar que falhas sejam introduzidas nos kernels comuns.
- Federação Comercial
Trade Federation, também chamada de Tradefed, é uma estrutura de teste contínuo projetada para executar testes em dispositivos Android. Por exemplo, Tradefed é usado para executar testes do Compatibility Test Suite e do Vendor Test Suite.
- Conjunto de testes de fornecedores (VTS)
O Android Vendor Test Suite (VTS) oferece amplos recursos para testes do Android, promove um processo de desenvolvimento orientado a testes e automatiza os testes de HAL e de kernel do sistema operacional.
Tipos de teste de plataforma
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. Um teste de plataforma pode:
- (tipo 1) APIs de framework de exercícios usando framework Android. APIs específicas exercidas podem incluir:
- APIs públicas destinadas a aplicativos de terceiros
- APIs ocultas destinadas a aplicativos privilegiados, ou seja, APIs de sistema ou APIs privadas (
@hide
, or
protected,
pacote private`)
- (tipo 2) Invoque serviços do sistema Android usando binder bruto ou proxies IPC diretamente.
- (tipo 3) Interaja diretamente com HALs usando APIs de baixo nível ou interfaces IPC.
Os testes do tipo 1 e 2 são normalmente testes de instrumentação, enquanto os testes do tipo 3 são geralmente GTests.
Qual é o próximo?
A seguir está uma lista dos próximos documentos que você pode ler:
Se você ainda não estudou a arquitetura do Android, consulte Visão geral da arquitetura .
Se você estiver criando um dispositivo compatível com Android, consulte a visão geral do programa de compatibilidade Android .
Para integrar testes de instrumentação, funcionais, métricas e de host JAR em um serviço de teste contínuo de plataforma, consulte Fluxo de trabalho de desenvolvimento de teste .
Para detectar e proteger seus dispositivos contra vulnerabilidades, consulte Testes de segurança .
Para saber mais sobre como testar suas implementações de HAL e kernel, consulte Vendor Test Suite (VTS) e infraestrutura .
Para testes de aplicativos, leia Fundamentos de teste de aplicativos Android e conduza o Android avançado em Kotlin 05.1: Noções básicas de testes usando os exemplos fornecidos.
Aprenda sobre os testes básicos de pré-envio disponíveis por meio de ganchos de repositório. Esses ganchos podem ser usados para executar linters, verificar a formatação e acionar testes de unidade antes de prosseguir, como fazer upload de um commit. Esses ganchos estão desabilitados por padrão. Para obter mais informações, consulte Ganchos Preuplaod AOSP .
Para ler mais sobre registro em log, consulte Noções básicas sobre registro em log .
Para entender como depurar código Android, consulte Depurando código de plataforma nativa .