Algo deu errado. Use um navegador moderno.
| Biologia | : | Programação |
| Animais | : | Bugs |
⬇️
Descobertas
Método mais básico
Simples Observação: Revisão Manual
Registro de Indícios: Análise Estática
Armadilhas Fotográficas (Iscas): Fuzzing
SPOILERS!
Revisão Manual
Análise Estática
Fuzzing
Análise Baseada em IA
Olho humano
Depende da experiência
Não escala bem
Desenvolvimento Guiado por Uai
Não executa, procura padrões
Regras pré-definidas, configuráveis
Não executa, procura padrões
Regras pré-definidas, configuráveis
Funciona bem em larga escala
Tende a gerar falsos positivos
Fornece inputs problemáticos
Executa, análise dinâmica
Fornece inputs problemáticos
Executa, análise dinâmica
Alcança bugs profundos
Escala bem, exige muita CPU
Estruturada, com agentes especializados
Revisão direta do código
Procura por padrões
Testa inputs problemáticos
Especialização
Colaboração
Verificação
Para cada técnica vista
def max_power(a, b):
"""Maior número na exponenciação de um par."""
if a > b:
result = b ** a
if b < 0 and a % 2 == 0:
result = abs(result)
return result
else:
result = a ** b
if a < 0 and b % 2 == 0:
result = abs(result)
Diversidade de ferramentas
Integradas a IDEs
Abstrações e profundidades diferentes
Exemplos
Padrões locais: Ruff, Pylint
Tipos e fluxo: mypy, Pyright
Fluxo de dados: Pysa, CodeQL
Contratos: CrossHair
Atheris: cobertura
Hypothesis: propriedades
HypoFuzz: cobertura
OSS-Fuzz: campanhas contínuas
fusil / lafleur: fuzzers especializados
Seleção
Mutação
Execução
Análise
Introspecção
class Silly:
def __iter__(self):
raise RuntimeError("ninguém espera a Inquisição Espanhola")
def generator():
yield from Silly()
next(generator())
Revisão de PR
Copilot · CodeRabbit · Qodo
Análise + IA
Semgrep · Snyk · CodeQL
Auditoria de repositório
RepoAudit · toolkits
groupby_next:
✅ referência protegida
_grouper_next:
❌ bug permaneceu
O agente examinou o histórico e procurou a variante.
|
|
Achados candidatos
↓
Reproduzir + cruzar + deduplicar
↓
Evidência priorizada
achado
↓
reproducer
↓
deduplicação
↓
comunicação + validação
↓
correção
|
2008: primeiros bugs, no olho
2024-2025: fuzzing do CPython
2026: IA no CPython e nas extensões
Olho → fuzzing → IA
|
Requisito |
Como obtenho |
|
CPU |
Máquinas próprias e nuvem |
|
IA |
Assinatura e apoio recebido |
|
Tempo |
Trabalho voluntário |
fusil: 146 bugs distintos
52 issues em 2024-2025, release blockers
lafleur: 28 bugs no JIT
Falta de memória: 31 bugs numa issue
Extensões: ~690 achados, 215+ reproduzidos
138+ bugs em extensões, 55+ no CPython
No total (julho/2026): 464 bugs, 321 resolvidos
~690 achados
↓
revisão + reprodução
↓
215+ reproduzidos
↓
deduplicação + comunicação
↓
138 bugs distintos
Bugs corrigidos
Padrões recorrentes aparecem
APIs e práticas podem melhorar
Projetos passam a caçar melhor
Ampliam o olhar
Trazem perspectivas diferentes
Ensinam a pensar como caça-bugs
"Como isso pode dar errado?"
Modelos mais capazes
Ferramentas + verificação melhores
Mais gente caçando
As ferramentas funcionaram com:
Também podem funcionar para você!
devdanzin@gmail.com
https://t.me/devdanzin
https://github.com/devdanzin
https://mastodon.social/@danzin
https://discuss.python.org/u/devdanzin
Vamos caçar bugs?