// Notas de engenharia

O que quebra em produção.

Testes, pipelines e qualidade de dados. Escrito por quem atendeu o telefone do suporte antes de escrever a primeira asserção.

12 min

Flaky test não existe

Marcar um teste como instável e ligar o retry não conserta nada — silencia o único detector que você tinha. Quase toda falha intermitente é uma condição de corrida que também está em produção, esperando a terça-feira certa.

Ler
11 min

A pirâmide de testes te ensinou a medir a coisa errada

Uma heurística de custo virou meta de percentual em dashboard. "70/20/10" é uma proporção sem unidade: não diz nada sobre risco. Dá pra ter a pirâmide perfeita, 85% de cobertura, e ainda zerar o estoque de um cliente.

Ler
10 min

De 41 para 6 minutos: o que realmente estava lento na suíte

Paralelizar primeiro é o erro mais comum. Paralelizar uma suíte que compartilha estado só transforma teste lento em teste lento e instável. O maior ganho quase nunca vem do paralelismo — vem do setup.

Ler
10 min

Seu dado de teste é dívida técnica

Nasce como uma fixture que alguém copiou de produção, vira um dump que ninguém sabe restaurar e termina como a causa real de metade das falhas. Mais LGPD, que a maioria dos times finge não existir em ambiente de teste.

Ler
11 min

O suporte me ensinou mais sobre qualidade do que qualquer certificação

QA que nunca atendeu suporte testa o software. Quem atendeu testa o dia do usuário. A diferença aparece exatamente nos bugs que a suíte não pega — os que só existem quando o dado do cliente é feio.

Ler
11 min

Pipeline de dados não quebra. Ele mente.

Software quebra com barulho: stack trace, erro 500, alerta. Pipeline quebra em silêncio — o job fica verde, o dashboard abre, e o número está errado. O modo de falha dominante em dados é o resultado plausível.

Ler
12 min

O contrato entre o seu front e o seu back não existe

Um campo renomeado numa refatoração inocente, quatro camadas de teste verdes e a quebra só em produção. Existe um Swagger que ninguém lê e um acordo verbal de abril — contrato só existe quando violá-lo quebra o build.

Ler
11 min

Seu time não faz BDD. Faz Gherkin.

BDD é a conversa que acontece antes do código. O arquivo .feature é a sobra dela. Quem pula a conversa paga toda a sintaxe e não recebe nenhum dos benefícios — fica com Cypress escrito em português.

Ler
12 min

94% de acurácia e completamente errado

Duas semanas construindo um classificador e três linhas de código para descobrir que um modelo que responde sempre a mesma coisa empatava com ele. A acurácia não mentiu — só não respondia a pergunta que eu achava.

Ler
12 min

Offline não é um estado de erro

O app que mostra "sem conexão, tente novamente" no meio do talhão não tem bug: tem uma premissa errada sobre onde vai rodar. E o problema difícil nem é guardar offline — é o que acontece na volta.

Ler
11 min

O teste que mais me salvou roda em produção

Homologação nunca tem os dados do cliente, o volume do cliente nem as integrações do cliente. A escolha nunca foi entre testar em produção ou não — é entre descobrir por instrumentação sua ou por telefone.

Ler
15 min

A média é onde os problemas de performance vão se esconder

O painel dizia 210 ms e o cliente dizia que estava lento. Os dois estavam certos. Tempo de resposta tem cauda longa, e é na cauda que mora o cliente grande — justamente o que mais importa.

Ler