Como Sistemas Criticos Sao Testados: Aviacao,
Na web, a gente faz deploy sexta à tarde e torce pro Sentry não apitar. Na aviação, cada linha de código passa por verificação formal antes de entrar
TL;DR
Como Sistemas Criticos Sao Testados: Aviacao,. Na web, a gente faz deploy sexta à tarde e torce pro Sentry não apitar. Na aviação, cada linha de código passa por verificação formal antes de entrar num avião com 200 pessoas. A diferença de rigor é absurda — e tem coisa que dá pra trazer pro nosso mundo.
DAL (Design Assurance Level) — Aviação
Classificação DO-178C para software embarcado em aeronaves
Prós
- DAL A (catastrófico): falha causa crash. Exige MC/DC coverage, verificação independente total
- DAL B (perigoso/severo): falha causa dano sério. Exige decision coverage + independência
- DAL C (major): falha causa desconforto ou aumento de carga de trabalho. Statement + decision coverage
- DAL D (minor): falha é notada mas sem impacto significativo. Statement coverage
- DAL E (sem efeito): sem impacto na segurança. Sem requisitos de software
Contras
ASIL (Automotive Safety Integrity Level) — Automotivo
Classificação ISO 26262 para software veicular
Prós
- ASIL D (mais rigoroso): direção, frenagem — falha pode matar. Equivalente ao DAL A
- ASIL C: airbags, ABS — falha causa ferimento sério
- ASIL B: luzes externas — falha aumenta risco de acidente
- ASIL A (menos rigoroso): ar condicionado, rádio — falha causa desconforto
- QM (Quality Management): sem requisitos especiais de segurança
Contras
Circuit breakers aplicados ao seu código
O padrão Circuit Breaker do Michael Nygard serve exatamente pra isso em microserviços.
Se um serviço downstream falha N vezes seguidas, o circuit breaker 'abre' e para de chamar por X segundos.
Evita que uma falha em um serviço cascade e derrube todo o sistema.
Bibliotecas: resilience4j (Java), Polly (.NET), opossum (Node.js).
Práticas de sistemas críticos adaptadas pra web
Stryker Mutator
Mutation testing para JS/TS. Modifica seu código automaticamente e verifica se os testes detectam. Se não detectam, seus testes são fracos.
Saiba mais →k6 (Grafana)
Load testing em JavaScript. Simula milhares de usuários e mede latência, throughput e error rate. Integra com CI.
Saiba mais →Chaos Toolkit
Framework open source para chaos engineering. Define experimentos em YAML e injeta falhas controladas no sistema.
Saiba mais →Gremlin
Plataforma comercial de chaos engineering. Injeta falhas de rede, CPU, disco e DNS de forma controlada em produção.
Saiba mais →Continue lendo
A História Não Contada do Desenvolvimento de Software
A história dos bugs mais caros e mortais da computação — e o que eles ensinam.
Code Review Salva Vidas: Como Revisar Codigo Critico
Código que controla aviões, carros e equipamentos médicos precisa de review especial. Técnicas da aviação aplicadas ao dev moderno.
Lições de Engenharia de Software dos Maiores Fracassos
Healthcare.gov, Cyberpunk 2077, Boeing MAX. O que projetos fracassados ensinam sobre gestão, testes e cultura de eng.
Coolify + N8n
Infra self-hosted prática