// 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.
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 →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 →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 →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 →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 →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 →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 →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.
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 →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 →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 →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 →Nada aqui sob essa tag — ainda.