Tipos de automação de CI

Veja a seguir algumas formas típicas de automação que podem ser usadas no seu sistema de CI.

Jobs básicos

  • Criar:ao criar um projeto do zero, você garante que as novas mudanças sejam compilados corretamente e que todas as bibliotecas e ferramentas sejam compatíveis entre si.

  • Verificações de lint ou estilo:esta é uma etapa opcional, mas recomendada. Quando você aplica regras de estilo e realiza análise estática, as revisões de código podem ser mais concisas e focadas.

  • Testes locais ou no lado do host:eles são executados na máquina local que executa o build. No Android, geralmente é a JVM, então, elas são rápidas e confiáveis. Eles também incluem testes Robolectric.

Testes instrumentados

Os testes executados em emuladores ou dispositivos físicos exigem certo provisionamento, aguardando a inicialização ou a conexão dos dispositivos, além de outras operações que aumentam a complexidade.

Há várias opções para executar testes de instrumentação na CI:

  • Os dispositivos gerenciados pelo Gradle podem ser usados para definir os dispositivos a serem usados (por exemplo, "Emulador do Pixel 2 na API 27") e processam o provisionamento de dispositivos.
  • A maioria dos sistemas de CI vem com um plug-in de terceiros (também chamado de "ação", "integração" ou "etapa") para processar emuladores do Android.
  • Delegar testes de instrumentação a um farm de dispositivos, como o Firebase Test Lab. Os farms de dispositivos são usados pela alta confiabilidade e podem ser executados em emuladores ou dispositivos físicos.

Testes de regressão de desempenho

Para monitorar o desempenho do app, recomendamos o uso das bibliotecas de comparação. A automação de testes de desempenho durante o desenvolvimento requer dispositivos físicos para garantir resultados de teste consistentes e realistas.

A execução de comparações pode levar muito tempo, especialmente quando você tem uma alta cobertura de jornadas de código e usuário para comparar. Em vez de executar todas as comparações para cada recurso ou confirmação mesclado, considere executá-las como parte de um build de manutenção programado regularmente, como um build noturno.

Como monitorar o desempenho

É possível monitorar regressões de desempenho usando o ajuste de etapas. O ajuste de etapa define uma janela contínua de resultados do build anterior, que você compara com o build atual. Essa abordagem combina vários resultados de comparação em uma métrica específica da regressão. É possível aplicar o ajuste de passos para reduzir o ruído durante o teste de regressão.

Isso reduz a ocorrência de falsos positivos que podem ocorrer quando os tempos de comparação são lentos para um único build e depois normalizam novamente.

Testar verificações de regressão de cobertura

A cobertura de testes é uma métrica que pode ajudar você e sua equipe a decidir se os testes cobrem uma mudança de maneira suficiente. No entanto, ele não deve ser o único indicador. É uma prática comum configurar uma verificação de regressão que falhe ou mostre um aviso quando a cobertura diminui em relação à ramificação de base.