bohrbug
folcloreprogramação
Um bug sólido e reproduzível que se comporta da mesma forma toda vez que você o executa.
A contraparte do heisenbug, nomeada em referência ao átomo determinístico de Bohr. Um bohrbug é o tipo bom de difícil: não se esconde da observação, então, uma vez achado o dado que o dispara, ele dispara sempre.
Um bohrbug é o oposto do heisenbug e, felizmente, o caso comum. É determinístico: a mesma entrada produz a mesma falha sempre, ele sobrevive a um depurador, e não se importa se alguém está olhando. O nome vem do átomo de Bohr, sólido e previsível, em contraste com a incerteza de Heisenberg.
Sua virtude é ser tratável. Um bug reproduzível pode ser bissectado, reduzido a um caso mínimo, corrigido e então comprovadamente corrigido por um teste de regressão que falha antes e passa depois. Todo o aparato de teste de software é construído para essa classe, e é por isso que bohrbugs são os que se fecham e heisenbugs os que se reabrem.
O reflexo útil é tentar converter um no outro. Quando uma falha é intermitente, o esforço gasto em encontrar a entrada que a torna determinística costuma render mais que o esforço de flagrá-la em ação, e boa parte da habilidade de depurar é exatamente isto: estreitar condições até uma falha imprevisível virar previsível. A taxonomia inclui ainda os mandelbugs, cujas causas são tão complexas que o comportamento parece caótico, e os schrödinbugs, que funcionam bem até alguém ler o código e perceber que jamais deveriam ter funcionado.
Também conhecido como: bohrbug, bohr bug
Fontes
- The Jargon File