Análise de resultados no Firebase Test Lab

Há várias maneiras de usar o Firebase Test Lab para executar testes no seu app para Android, incluindo a interface de linha de comando, Android Studio, a IU do Test Lab no Console do Firebase e a API de teste. Independentemente de como você iniciar os testes, os resultados serão armazenados no projeto do Firebase que você especificar. É possível analisar os resultados por meio da 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 ver 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:

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

Dispositivo
Dispositivo em que você realiza um teste, como smartphone, tablet ou wearable. Os dispositivos em uma matriz de teste são identificados por modelo, versão do SO, localidade e orientação da tela.
Execução de teste
Uma execução de teste em um dispositivo. Em uma matriz de teste comum, há uma execução de teste por dispositivo selecionado.
Matriz de teste
Um conjunto de execuções de teste. Se alguma execução de teste em uma matriz falhar, o mesmo acontece com a matriz inteira.

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 aplicativo no seu projeto do Firebase, clique no nome do aplicativo, 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 aplicativo, onde é possível clicar no nome de qualquer matriz de teste para ver os resultados e onde é possível clicar no nome do aplicativo (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 falha 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. Você poderá usar 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

Como interpretar 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, é exibido 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 teste Robo, os resultados detalhados também incluem um mapa de atividades que mostra graficamente os caminhos da IU que foram 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

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 frame 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 e são armazenados em um intervalo do Google Cloud Storage (GCS). Além disso, eles podem ser vistos no Console do Firebase. Para ver os resultados detalhados no intervalo do GCS, clique em Visualizar arquivos de origem na página de resultados da execução do teste. Quando os resultados detalhados do teste 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 intervalo do GCS de sua propriedade por meio da linha de comando do gcloud --results-bucket. Em seguida, é possível definir a configuração Idade para determinar por quanto tempo os resultados são armazenados no seu intervalo do GCS. Consulte Condições de ciclo de vida para saber como alterar a configuração de Idade.