Primeiros passos para fazer testes no Android com o Firebase Test Lab

Com o Firebase Test Lab, você pode testar seu app em diversos dispositivos e configurações. Veja neste guia para iniciantes um caminho de implementação que você pode seguir, além de uma introdução às ofertas do Test Lab para Android.

Para informações sobre cotas e planos de preços do Test Lab, consulte Uso, cotas e preços.

Principais conceitos

Quando você executa um teste ou um conjunto de casos de teste em relação aos dispositivos e configurações que você selecionou, o Test Lab executa o teste no seu app em um lote e exibe os resultados como uma matriz de teste.

Dispositivos × Execuções de teste = Matriz de teste

Dispositivo
Um dispositivo físico ou virtual (somente Android) em que você realiza um teste, como um smartphone, tablet ou wearable. Os dispositivos em uma matriz de teste são identificados por modelo, versão do SO, orientação da tela e localidade (também conhecida como configurações geográficas e de idioma).
Teste, execução do teste
Um teste (ou um conjunto de casos de teste) a ser executado em um dispositivo. É possível executar um teste por dispositivo ou, opcionalmente, fragmentar o teste e executar os casos de teste em diferentes dispositivos.
Matriz de teste
Contém os status e resultados de teste das execuções do teste. Se alguma execução do teste em uma matriz falhar, a matriz inteira falhará.

Etapa 1: preparar o teste para fazer upload no Test Lab

Tipos de teste disponíveis

É possível executar os seguintes testes com o Test Lab. Todos os tipos de teste são limitados a serem executados por 45 minutos em dispositivos físicos e 60 minutos em dispositivos virtuais. Qualquer exceção não identificada causará uma falha no teste.

  • Teste de instrumentação ou teste de unidade de instrumentação: um teste escrito usando os frameworks Espresso ou UI Automator 2.0. Com este teste, é possível fazer declarações explícitas sobre o estado do seu app para verificar a funcionalidade correta usando AndroidJUnitRunnerAPIs.

  • Teste Robo: um teste automatizado que analisa a interface do app e a explora de modo metódico, simulando atividades do usuário, sem que você precise escrever códigos. Acesse Sobre os testes Robo para mais informações.

  • Teste de loop de jogo: um teste que usa um "modo de demonstração" para simular ações de jogadores em apps de jogos. Essa é uma maneira rápida e escalonável de verificar se o jogo tem um bom desempenho para os usuários. Quando quiser executar um teste de loop de jogo, é possível:

    • Programar testes nativos no mecanismo do jogo

    • Evitar escrever o mesmo código para diferentes IUs ou frameworks de teste

    • Como opção, pode criar vários loops para serem executados em uma única execução do teste (consulte Sobre os testes de loop de jogo para saber mais). Também é possível organizar loops usando rótulos para que você possa monitorá-los e executar loops específicos novamente.

    Consulte Executar um teste de loop de jogo para instruções sobre como executar este teste com o Test Lab.

Ferramentas para executar seus testes

É possível escolher as seguintes ferramentas para executar o teste:

  • Recomendado para usuários iniciantes: o Console do Firebase permite fazer upload de um app e iniciar o teste no navegador da Web. Consulte Testar com o Console do Firebase para instruções sobre como executar testes usando essa ferramenta.

  • Com a integração do Android Studio, você poderá testar o app sem sair do ambiente para desenvolvedores. Consulte Testar com o Android Studio para instruções sobre como executar testes usando essa ferramenta.

  • Com a interface de linha de comando gcloud, você executa os testes a partir da linha de comando de modo interativo. Esse é o método ideal para a criação de scripts como parte do processo automatizado de desenvolvimento e testes. Consulte Testar com a CLI gcloud para ver instruções sobre como executar testes usando essa ferramenta.

O app também pode ser testado sem custos financeiros com o Test Lab quando você faz upload e publica os arquivos APK do seu app na Play Store usando o canal Alfa ou Beta. Para mais informações, consulte Usar relatórios de pré-lançamento para identificar problemas e Testes Robo.

Etapa 2: escolher seu dispositivo de teste

O Test Lab é compatível com testes para diversas marcas e modelos de dispositivos Android instalados e em execução no data center do Google. O teste em dispositivos no Test Lab ajuda a detectar problemas que podem ocorrer ao testar seu app usando emuladores no Android Studio. Para saber mais, consulte Dispositivos disponíveis.

Etapa 3: revisar os resultados do teste

Independentemente de como você inicia os testes, todos os resultados do teste são gerenciados pelo Test Lab e podem ser vistos on-line.

O resumo do resultado do teste é armazenado automaticamente e pode ser visualizado no Console do Firebase. Ele contém os dados mais relevantes para o teste, incluindo vídeos específicos de caso de teste, capturas de tela, número de testes que foram aprovados, reprovados ou receberam resultados instáveis e muito mais.

Os resultados brutos do teste contêm registros de teste e detalhes de falhas de apps e são armazenados automaticamente em um bucket do Google Cloud. Se você especificar um bucket, será responsável pelo custo do armazenamento. Se você não especificar um bucket, o Test Lab vai criar um para você sem custos.

Para mais detalhes, consulte Analisar os resultados do Firebase Test Lab.

Ao iniciar um teste no Android Studio, também é possível analisar os resultados do teste a partir do seu ambiente de desenvolvimento.

Limpeza dos dispositivos

O Google leva a segurança dos dados do seu app muito a sério. Seguimos as práticas recomendadas padrão do setor para remover dados do app e redefinir as configurações do sistema para dispositivos físicos após cada execução de teste, garantindo que eles estejam prontos para executar novos testes. Nos dispositivos onde a restauração de uma imagem de recuperação personalizada é possível, isso é feito entre as execuções de teste.

No caso dos dispositivos virtuais usados pelo Test Lab, as instâncias são excluídas após o uso. Assim, cada execução de teste usa uma nova instância de dispositivo virtual.


Test Lab e Google Play Services

Os dispositivos do Test Lab geralmente têm a versão mais recente do SDK do Google Play Services, mas alguns podem levar alguns dias para serem atualizados após o lançamento de uma nova versão do SDK. Você pode encontrar problemas de compatibilidade em alguns dispositivos.

Como permitir que dispositivos de teste acessem servidores de back-end particulares

Alguns apps para dispositivos móveis precisam se comunicar com serviços de back-end particulares para funcionar corretamente durante os testes. Se os servidores de back-end estiverem protegidos por regras de firewall, será possível permitir o acesso aos dispositivos físicos e virtuais do Test Lab usando os blocos de endereços IP abaixo para abrir rotas que passam pelo firewall.

Publicidade em dispositivos móveis

O Test Lab oferece uma infraestrutura escalonável que automatiza os testes de apps e, infelizmente, esse recurso pode ser usado indevidamente por apps maliciosos desenvolvidos para gerar receita fraudulenta com anúncios.

Para minimizar esse problema, confira essas informações:

  • Se você usa ou trabalha com provedores de publicidade digital terceirizados (por exemplo, redes de anúncios ou plataformas de demanda), recomendamos que você use anúncios de teste em vez de reais durante o desenvolvimento do app e os testes.

  • Caso você precise usar anúncios reais nos testes, peça aos provedores de publicidade digital com quem trabalha para filtrarem qualquer receita e todo o tráfego correspondente gerado pelo Test Lab. Eles podem fazer isso usando os blocos de endereços IP abaixo. Não é preciso pedir isso aos provedores de anúncios que são do Google. Nesses casos, o Test Lab cuida disso por você.

Endereços IP usados por dispositivos do Test Lab

Todo o tráfego de rede gerado pelos dispositivos do Test Lab vem dos blocos de endereços IP a seguir. Também é possível acessar essa lista usando o comando gcloud beta firebase test ip-blocks list na CLI gcloud. A lista é atualizada em média uma vez por ano.

Plataforma e tipo de dispositivo Bloco de endereços IP CIDR
Dispositivos físicos Android e iOS, dispositivos Arm virtuais

70.32.128.0/19 (adicionado em 02/2022)

108.177.6.0/23

108.177.18.192/26 (adicionado em 02/2022)

108.177.29.64/27 (expandido em 02/2022)

108.177.31.160/27 (adicionado em 02/2022)

199.36.156.8/29 (adicionado em 02/2022)

199.36.156.16/28 (adicionado em 02/2022)

209.85.131.0/27 (adicionado em 02/2022)

2001:4860:1008::/48 (adicionado em 02/2022)

2001:4860:1018::/48 (adicionado em 02/2022)

2001:4860:1019::/48 (adicionado em 02/2022)

2001:4860:1020::/48 (adicionado em 02/2022)

2001:4860:1022::/48 (adicionado em 02/2022)

Dispositivos virtuais Android (sem ARM)

34.68.194.64/29 (adicionado em 11/2019)

34.69.234.64/29 (adicionado em 11/2019)

34.73.34.72/29 (adicionado em 11/2019)

34.73.178.72/29 (adicionado em 11/2019)

34.74.10.72/29 (adicionado em 02/2022)

34.136.2.136/29 (adicionado em 02/2022)

34.136.50.136/29 (adicionado em 02/2022)

34.145.234.144/29 (adicionado em 02/2022)

35.192.160.56/29

35.196.166.80/29

35.196.169.240/29

35.203.128.0/28

35.234.176.160/28

35.243.2.0/27 (adicionado em 7/2019)

35.245.243.240/29 (adicionado em 02/2022)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

Os blocos de IP do dispositivo não estão mais sendo usados

74.125.122.32/29 (removido em 02/2022)

216.239.44.24/29 (removido em 02/2022)