Analise os resultados do laboratório de testes do Firebase

Existem várias maneiras de usar o Firebase Test Lab para executar testes em seu aplicativo Android, incluindo a interface de linha de comando , o Android Studio , a IU do Test Lab no console do Firebase e a API Testing . Independentemente de como você decidir iniciar os testes, os resultados serão armazenados no projeto do Firebase que você especificar. Você pode explorar os resultados usando a API ToolResults , além de qualquer uma das ferramentas acima. Esta página descreve como revisar e analisar esses resultados de teste.

Conceitos chave

Para ver os resultados de todos os testes anteriores, selecione Test Lab no painel de navegação esquerdo do seu projeto no Firebase console. Esta página exibe todas as execuções de teste dos aplicativos que você testou com seu projeto usando o Test Lab.

Para revisar os resultados dos testes, primeiro você precisa entender três conceitos:

Quando você executa um teste ou um conjunto de casos de teste em dispositivos e configurações selecionados, o Test Lab executa o teste em seu aplicativo em 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) no qual você executa um teste, como um telefone, tablet ou dispositivo vestível. Os dispositivos em uma matriz de teste são identificados por modelo do dispositivo, versão do sistema operacional, orientação da tela e localidade (também conhecida como configurações geográficas e de idioma).
Teste, execução de teste
Um teste (ou um conjunto de casos de teste) a ser executado em um dispositivo. Você pode executar um teste por dispositivo ou, opcionalmente, fragmentar o teste e executar seus casos de teste em dispositivos diferentes.
Matriz de teste
Contém os status e os resultados dos testes para suas execuções de teste. Se qualquer execução de teste em uma matriz falhar, toda a matriz falhará.

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

Interpretar resultados do histórico de testes

Ao navegar até os resultados do teste selecionando Test Lab , você verá os resultados dos testes executados até agora.

O histórico de testes é agrupado por aplicativo. Apenas as cinco matrizes de teste mais recentes são mostradas para cada aplicativo; se houver mais disponíveis, você pode clicar no link Todas as matrizes na parte inferior da lista de testes do aplicativo para ver a lista completa desse aplicativo.

Interpretar resultados da matriz de teste

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

Em uma matriz de teste típica, você pode executar um teste em cerca de uma dúzia de dispositivos diferentes. Cada execução de teste pode ter um resultado diferente. Os resultados possíveis para qualquer execução de teste em uma matriz de teste incluem o seguinte:

  • PassadoTeste aprovado : Nenhuma falha foi encontrada.
  • FracassadoTeste falhou : pelo menos uma falha foi encontrada.
  • InconclusivoTeste aprovado : os resultados dos testes foram inconclusivos, possivelmente devido a um erro do Test Lab.
  • IgnoradoTeste aprovado : os valores de dimensão selecionados para algumas execuções de teste na matriz eram incompatíveis. Isso ocorre quando os dispositivos selecionados são incompatíveis com um ou mais níveis de API do Android selecionados.

Para revisar 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 de matriz de teste com apenas quatro execuções de testeResultados da matriz de teste

Isso leva você à lista de matrizes de teste do seu aplicativo, onde você pode clicar no nome de qualquer matriz de teste para ver os resultados da matriz de teste e onde você pode clicar no nome do aplicativo (mostrado na caixa vermelha abaixo) para visualizar o lista de matrizes de teste para outros aplicativos associados ao seu projeto do Firebase.

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

Uma matriz de teste pode ser aprovada, reprovada ou ser inconclusiva. Uma matriz de teste é mostrada como falhada ou inconclusiva se alguma execução de teste nessa matriz falhar ou for inconclusiva.

Interpretar os resultados do teste Robo

Se você executou seus testes com o Robo, seus resultados incluirão vídeos e capturas de tela do Robo rastreando sua IU, além das métricas de teste usuais. Esses vídeos e capturas de tela incluem indicações visuais das ações que Robo realizou durante o rastreamento, semelhante ao recurso ‘Mostrar toques’ no Android. Você pode usar as indicações para ajudá-lo a acompanhar o progresso do Robo e reproduzir quaisquer bugs que ele possa descobrir.

Exemplo de vídeo de resultados de teste Robo

Resultados do teste Robo

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

Na página de resultados da matriz de teste, clique em uma das execuções de teste para ver o resultado dessa execução de teste específica.

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

Nesta página você pode ver o tempo necessário para a execução de cada teste. Você também pode ver os resultados de casos de teste específicos que correspondem aos métodos em seu APK de teste (para testes de instrumentação) e resultados de testes detalhados, incluindo registros de teste, capturas de tela e vídeos. Para o teste Robo , os resultados detalhados do teste também incluem um mapa de atividades que mostra graficamente os caminhos da IU que foram visitados pelo teste Robo.

Resultados de testes de instrumentação particionada

Para ajudá-lo a interpretar os resultados dos testes instrumentados, o Test Lab separa cada teste em sua própria página de relatório detalhada, completa com rastreamentos de pilha, logs e vídeos. Este recurso funciona independentemente de você estar usando o Android Orchestrator ou não.

Exemplo de página de resultados de teste Resultados do caso de teste

Interpretar resultados de acessibilidade

Os testes Robo usam o Android Accessibility Scanner para detectar problemas de acessibilidade no seu aplicativo (observe que você também pode executar uma verificação localmente no seu dispositivo). Para obter instruções sobre como revisar e interpretar os resultados de acessibilidade do seu teste Robo, visite Primeiros passos com o Accessibility Scanner .

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

Métricas de desempenho

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

Métrica Configuração de dispositivo necessária
Hora de inicialização do aplicativo API 19+
utilização do CPU API 21+
Uso de memória
Atividade de rede
Quadros por segundo API 21+ e inclui um SurfaceView
Desempenho gráfico API 23+

Detalhes de desempenho gráfico

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

  • Vsync perdido: o número de eventos Vsync perdidos, dividido pelo número de quadros que demoraram mais de 16 ms para serem renderizados.
  • Alta latência de entrada: o número de eventos de entrada que demoraram mais de 24 ms, dividido pelo número de quadros que levaram mais de 16 ms para serem renderizados.
  • Thread de UI lento: o número de vezes que o thread de UI levou mais de 8 ms para ser concluído, dividido pelo número de quadros que levaram mais de 16 ms para renderizar.
  • Comandos de desenho lento: o número de vezes que o envio de comandos de desenho para a GPU demorou mais de 12 ms, dividido pelo número de quadros que demoraram mais de 16 ms para serem renderizados.
  • Uploads lentos de bitmap: o número de vezes que o bitmap demorou mais de 3,2 ms para ser carregado na GPU dividido pelo número de quadros 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 de teste. Tempos de renderização superiores a 32 milissegundos causam uma lentidão perceptível na sua IU. Tempos de renderização acima de 700 indicam quadros congelados. Os dados de renderização são coletados de dumpsys graphicsstats .

Resultados detalhados dos testes

Os resultados detalhados do teste ficam disponíveis por 90 dias após a execução de um teste e são armazenados em um intervalo do Google Cloud Storage (mas também são visíveis no console do Firebase). Você pode visualizar resultados de testes detalhados no intervalo do Cloud Storage clicando em Resultados do teste na página de resultados da execução do teste. Quando os resultados detalhados dos testes não estiverem mais disponíveis, você ainda poderá ver quais testes foram aprovados ou reprovados.

Para reter resultados de testes detalhados por mais de 90 dias, você precisa enviar esses resultados de teste para um bucket do Cloud Storage de sua propriedade usando a opção de linha de comando --results-bucket gcloud . Você pode então definir a configuração Idade para determinar por quanto tempo os resultados serão armazenados no intervalo do Cloud Storage. Consulte Condições do ciclo de vida para obter informações sobre como alterar a configuração Idade .