Análise de resultados no Firebase Test Lab

Há várias maneiras de usar o Firebase Test Lab para executar testes no seu app Android, incluindo a interface de linha de comando, o Android Studio, a interface do Test Lab no Console do Firebase e a API Testing. Independentemente de como você iniciar os testes, os resultados serão armazenados no projeto do Firebase que você especificar. É possível analisar os resultados com a API ToolResults, além de qualquer uma das ferramentas mencionadas acima. Nesta página, descrevemos como entender e analisar esses resultados de teste.

Principais conceitos

Para conferir os resultados de todas as suas execuções de teste anteriores, selecione Test Lab no painel de navegação esquerdo do seu projeto no Console do Firebase. Esta página mostra todas as execuções de teste dos apps que você testou com seu projeto no Test Lab.

Antes de analisar os resultados do teste, é necessário entender três 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á.

As seções a seguir explicam como navegar pelos resultados do teste.

Interpretar os resultados de histórico dos testes

Quando navega pelos resultados dos testes selecionando Test Lab, você vê os resultados dos testes executados até agora.

O histórico de testes é agrupado por app. Somente as cinco matrizes de teste mais recentes são exibidas para cada app. Se houver mais opções disponíveis, clique no link Todas as matrizes na parte inferior da lista de teste do aplicativo para ver a lista completa desse aplicativo.

Interpretar os resultados da matriz de teste

Ao iniciar um teste por meio da IU do Test Lab, você é redirecionado para uma página em que pode ver sua matriz de teste e clicar em uma execução de teste específica para ver os resultados. O Android Studio e o comando gcloud também oferecem um URL para a página de resultados da matriz de teste.

Em uma matriz de teste comum, você pode executar um teste em uma dezena de dispositivos diferentes ou mais. Cada execução de teste pode gerar um resultado diferente. Os possíveis resultados para cada execução de teste em uma matriz de teste incluem os especificados a seguir:

  • Aprovado Teste aprovado: nenhuma falha foi encontrada.
  • Falha Teste reprovado: pelo menos uma falha foi encontrada.
  • Inconclusivo Teste aprovado: os resultados do teste foram incompletos, possivelmente devido a um erro no Test Lab.
  • Ignorado Teste aprovado: os valores de dimensão selecionados foram incompatíveis para algumas execuções do teste na matriz. Isso ocorre quando os dispositivos escolhidos não são compatíveis com um ou mais níveis da API Android.

Para analisar os resultados de teste agregados de todas as matrizes de teste de um determinado app no seu projeto do Firebase, clique no nome do app, conforme mostrado no exemplo a seguir:

Exemplo de página de resultados da matriz de teste com apenas quatro execuções de teste Resultados da matriz de teste

Isso leva você à lista de matrizes de teste do seu app, onde é possível clicar no nome de qualquer matriz de teste para ver os resultados e onde é possível clicar no nome do app (mostrado na caixa vermelha abaixo) para visualizar a lista de matrizes de teste para outros apps associados ao seu projeto do Firebase.

Exemplo da página da lista de matrizes de teste Lista de matrizes de teste

Uma matriz de teste pode ser aprovada, reprovada ou apresentar um resultado inconclusivo. Uma matriz de teste será exibida como reprovada ou inconclusiva se alguma execução de teste nessa matriz falhar ou não for concluída.

Interpretar os resultados do teste Robo

Se você tiver executado seus testes com o Robo, os resultados incluirão vídeos e capturas de tela do Robo rastreando sua IU, além das métricas de teste normais. Esses vídeos e capturas de tela têm indicações visuais das ações executadas pelo Robo durante o rastreamento, como no recurso "Mostrar toques" no Android. Use as indicações para acompanhar o progresso do Robo e reproduzir os bugs que forem descobertos.

Exemplo de vídeo com resultados do teste Robo

Resultados do teste Robo

Interpretar os resultados de uma única execução de teste

Na página de resultados da matriz, clique em uma das execuções de teste para ver o resultado dela.

Exemplo de página de resultados da execução de teste Resultados da execução do teste

Nessa página, é mostrado o tempo necessário para cada execução de teste. Também é possível ver os resultados de casos de teste específicos que correspondem a métodos no seu APK de teste (para testes de instrumentação), além dos resultados detalhados do teste, que incluem registros, capturas de tela e vídeos. Para o Teste Robo, os resultados detalhados também incluem um mapa de atividades que mostra graficamente os caminhos da IU acessados pelo teste.

Resultados particionados dos testes de instrumentação

Para ajudar você a interpretar os resultados dos testes de instrumentação, o Test Lab separa cada teste em uma página de relatório detalhada que inclui rastreamentos de pilha, registros e vídeos. Esse recurso funciona mesmo se você não usar o Android Orchestrator.

Exemplo de página de resultados de casos de teste Resultados dos casos de teste

Interpretar resultados de acessibilidade

Os Testes Robo usam o Scanner de acessibilidade do Android para detectar problemas de acessibilidade no app. Também é possível executar uma verificação localmente no seu dispositivo. Para instruções sobre como analisar e interpretar os resultados de acessibilidade do seu Teste Robo, acesse Introdução ao Scanner de acessibilidade.

Para informações gerais sobre como melhorar a acessibilidade do seu app, acesse a documentação de acessibilidade para desenvolvedores Android.

Métricas de desempenho

Testes executados em dispositivos físicos também retornam métricas de desempenho:

MétricaConfiguração necessária do dispositivo
Horário de inicialização do appAPI 19+
Uso da CPUAPI 21+
Uso de memória
Atividade da rede
Quadros por segundoAPI 21+ e inclui um SurfaceView
Desempenho gráficoAPI 23+

Detalhes do desempenho gráfico

O relatório de desempenho gráfico contém estatísticas sobre várias métricas gráficas principais:

  • Vsyncs perdidas: o número de eventos Vsync perdidos, dividido pelo número de frames que levaram mais de 16 ms para renderizar.
  • Alta latência de entrada: o número de eventos de entrada que levaram mais de 24 ms, dividido pelo número de frames que levaram mais de 16 ms para renderizar.
  • Thread de IU lento: o número de vezes em que o thread de IU levou mais de 8 ms para ser concluído, dividido pelo número de frames que levaram mais de 16 ms para renderizar.
  • Comandos de emissão lenta: o número de vezes em que o envio de comandos de emissão para a GPU levou mais de 12 ms, dividido pelo número de frames que levaram mais de 16 ms para renderizar.
  • Uploads de bitmap lentos: o número de vezes em que o bitmap levou mais de 3,2 ms para ser enviado para a GPU, dividido pelo número de frames que levaram mais de 16 ms para renderizar.
  • Tempo de renderização: a distribuição dos tempos de renderização para cada quadro da execução do teste. Tempos de renderização maiores que 32 milissegundos causam uma lentidão perceptível na IU. Tempos de renderização de mais de 700 indicam frames congelados. Os dados de renderização são coletados de dumpsys graphicsstats.

Resultados detalhados do teste

Os resultados detalhados ficam disponíveis por 90 dias após a execução de um teste e são armazenados em um bucket do Google Cloud Storage. Além disso, eles podem ser vistos no Console do Firebase. Para ver os resultados detalhados no bucket do Cloud Storage, clique em Resultados do teste na página de resultados da execução do teste. Quando esses resultados não estiverem mais disponíveis, ainda será possível ver quais deles foram aprovados ou reprovados.

Para armazenar os resultados detalhados do teste por mais de 90 dias, é preciso enviá-los para um bucket do Cloud Storage de sua propriedade por meio da opção --results-bucket da linha de comando gcloud. Em seguida, é possível definir a configuração Idade para determinar por quanto tempo os resultados são armazenados no seu bucket do Cloud Storage. Consulte Condições de ciclo de vida para saber como alterar a configuração de Idade.