Ir para o conteúdo

Sistemas de qualidade, não contagem de testes

Por que o número de testes diz pouco sobre a confiança no release, e como risco, camadas e gates com propósito dizem mais.

O que torna um release defensável.

Publicado em 7 de outubro de 2026

Uma suíte grande não é um release confiante

Pergunte a uma equipe como são os seus testes e a resposta costuma ser um número: quantos testes, qual percentual de cobertura. Esses números são fáceis de coletar e de melhorar, e dizem surpreendentemente pouco sobre se um determinado release é seguro.

Uma suíte pode ser grande e ainda assim deixar passar as falhas que importam, porque os testes se concentram onde testar é fácil, e não onde está o risco. Ela pode estar verde e enganar, porque alguns testes não verificam nada relevante. Pode estar vermelha por motivos alheios à mudança, o que ensina todo mundo a ignorar o vermelho.

Confiança é uma propriedade do sistema de verificações como um todo: como elas são posicionadas, o que bloqueiam e como as pessoas reagem quando falham.

Parta do risco, depois escolha as camadas

Começamos perguntando o que não pode falhar para o negócio: um pagamento, uma exportação de dados, uma integração com um parceiro, um relatório regulatório. Esses comportamentos recebem as verificações mais fortes. O restante recebe verificações proporcionais.

Quanto às camadas, um formato conhecido ainda funciona. Muitas verificações rápidas de unidade e de componente dão retorno ágil sobre a lógica. Um número menor de testes de integração e de contrato confirma que as partes concordam entre si, que é onde vivem muitas falhas de produção. Um punhado de jornadas de ponta a ponta confirma que os caminhos mais importantes funcionam como o usuário os enxerga.

O formato é um guia, não uma regra. Alguns sistemas precisam de mais testes de contrato, outros de mais testes exploratórios, e o equilíbrio certo acompanha a arquitetura e o risco.

Gates precisam de propósito e de dono

Um quality gate é uma regra que decide se uma mudança avança. Os gates úteis são poucos e específicos: esta verificação bloqueia um merge, aquela bloqueia um release, esta apenas reporta. Cada um tem um responsável que sabe explicar por que ele existe e consegue alterá-lo.

Gates sem propósito se acumulam. Cada incidente adiciona uma verificação, ninguém remove nenhuma, e o pipeline vai ficando lento até as pessoas procurarem atalhos. Uma revisão periódica dos gates, perguntando qual falha cada um realmente evitou, mantém o sistema honesto. Um gate que nunca falhou por um bom motivo é candidato a ser removido ou redesenhado.

Testes instáveis são defeitos

Um teste que falha de forma intermitente sem mudança no código não é um incômodo. É um defeito no teste ou no sistema, e tem custo. Cada reexecução esconde um sinal e ensina as pessoas a desconfiar da suíte.

A resposta prática é tornar a instabilidade visível e finita. Isole o teste instável para que ele pare de bloquear todo mundo, atribua um responsável, defina uma data para corrigi-lo ou removê-lo e acompanhe quantos estão em quarentena. O objetivo não é zero. O objetivo é que um resultado vermelho seja levado a sério.

Meça o que muda decisões

As medidas úteis são as que mudam o que a equipe faz: quanto tempo o retorno leva, quão estável é o pipeline, quantos defeitos são encontrados após o release e de que tipo. Combinamos um conjunto pequeno no início do trabalho e o revisamos com honestidade, inclusive quando piora.

Engenharia de qualidade é, no fim, o trabalho de tornar uma decisão de release defensável. Se a sua equipe não consegue explicar por que confia em um build verde, é por aí que se deve começar.

Você consegue explicar por que confia em um build verde?

Se não, é um bom ponto de partida. Conte como os releases funcionam hoje.

Sistemas de Qualidade, Não Contagem de Testes | Solid Solutions