Skip to content
Latchkey

O que é teste de fumaça?

Um teste de fumaça é uma verificação rápida e superficial de que as partes mais importantes de um build funcionam minimamente, executada antes de investir em testes mais profundos.

O nome vem do hardware: ligue um dispositivo e veja se ele solta fumaça. Em software, um teste de fumaça é um pequeno conjunto de verificações rápidas que confirmam que o build não está fundamentalmente quebrado, que ele inicia, que a página inicial carrega, que o fluxo principal responde, antes que os testes mais lentos e minuciosos sejam executados. É um gate barato que falha rápido.

O que um teste de fumaça verifica

Os testes de fumaça cobrem amplitude, não profundidade. Eles tocam o punhado de caminhos críticos, o app inicializa, o login funciona, um endpoint chave retorna 200, sem verificar o comportamento exaustivamente. Se o teste de fumaça falhar, o build está morto na chegada e não há sentido em executar a suíte completa.

Fumaça versus a suíte completa

Uma suíte completa de regressão ou integração é minuciosa, mas lenta. Um teste de fumaça é o oposto: rápido e superficial. Os dois são complementares. Fumaça primeiro para detectar quebras catastróficas cedo, depois as suítes mais profundas se a fumaça passar.

Um exemplo rápido

Após um deploy, um teste de fumaça acessa o endpoint de saúde e uma página crítica para confirmar que o serviço está no ar antes de promovê-lo adiante.

A post-deploy smoke test
test("app is alive", async () => {
  const res = await fetch("/health");
  expect(res.status).toBe(200);
});

Quando os testes de fumaça rodam

  • No início do CI, antes das etapas de teste mais lentas.
  • Após um deploy, para confirmar que o ambiente está saudável.
  • Como um gate antes de promover um build para a próxima etapa.
  • Como uma verificação rápida de sanidade local antes de fazer push.

Teste de fumaça em CI

Colocar uma etapa de fumaça primeiro permite que o pipeline falhe rápido em um build quebrado, economizando o custo de executar a suíte completa. Como os testes de fumaça são minúsculos, eles terminam em segundos em runners rápidos, dando ao desenvolvedor um feedback quase instantâneo de que o build é pelo menos viável.

Principais conclusões

  • Um teste de fumaça verifica rapidamente que o build não está fundamentalmente quebrado.
  • É superficial e rápido, executado antes das suítes de teste mais profundas.
  • Uma primeira etapa de fumaça permite que o CI falhe rápido em um build morto.

Guias relacionados