Skip to content
Latchkey

O Que É a Pirâmide de Testes?

A pirâmide de testes é uma diretriz sobre como equilibrar a sua suíte de testes: muitos testes unitários rápidos, menos testes de integração e apenas um punhado de testes end-to-end lentos.

A pirâmide de testes é um modelo mental simples para manter uma suíte rápida e confiável. Desenhada como um triângulo, ela coloca testes unitários baratos e rápidos na base larga, testes de integração mais lentos no meio e testes end-to-end caros no topo estreito. O formato indica onde a maioria dos seus testes deve ficar.

As três camadas

  • Base: muitos testes unitários, rápidos e isolados.
  • Meio: menos testes de integração verificando componentes juntos.
  • Topo: alguns testes end-to-end cobrindo fluxos críticos do usuário.
  • Camadas mais altas são mais lentas, mais custosas e mais instáveis por teste.

Por que o formato importa

Testes rápidos dão feedback rápido. Se a maior parte da sua cobertura vem de testes unitários rápidos, a suíte roda em segundos e aponta claramente para as falhas. Apoiar-se em testes E2E lentos e instáveis em vez disso torna o CI arrastado e ruidoso, corroendo a confiança no check verde.

O anti-padrão cone de sorvete

Quando um time inverte a pirâmide, com testes majoritariamente manuais e end-to-end e poucos testes unitários, forma-se um "cone de sorvete". Tais suítes são lentas, frágeis e difíceis de manter. A pirâmide é o corretivo: empurre a cobertura para a camada mais barata que consiga capturar o bug.

É um guia, não uma lei

As proporções exatas dependem do sistema. Um app pesado em UI precisa de mais testes de navegador; uma biblioteca pura pode ser quase toda de testes unitários. O princípio durável é preferir o teste mais rápido que verifique significativamente o comportamento.

A pirâmide e a velocidade do CI

Uma pirâmide saudável mantém o tempo total de CI baixo porque o grosso dos testes é rápido. A camada superior mais lenta é onde a paralelização mais compensa. Latchkey acelera a suíte inteira rodando testes em paralelo em runners rápidos, o que ajuda especialmente as camadas mais pesadas de integração e E2E.

Principais conclusões

  • A pirâmide favorece muitos testes unitários, menos de integração, poucos E2E.
  • Testes de camadas mais baixas e rápidas dão feedback mais rápido e claro.
  • O "cone de sorvete" invertido é lento e frágil; evite-o.

Guias relacionados