Teste da plataforma Android

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 para android-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: