Erros, falhas e bugs

Lembro que no início dos nos 1990 eu trabalhava com Clipper, que na época era a linguagem da moda. Era uma linguagem muito boa de se trabalhar - tinha uma curva de aprendizagem muito rápida.

Mas quando a empresa adquiriu uma nova versão, uma rotina do sistema de gestão empresarial, mais precisamente, o módulo de cálculo de preço de venda, começou a apresentar problemas. Ele trazia um resultado totalmente errado mas não abortava o sistema.

Demorou alguns dias até percebermos o erro, pois ele ocorria ao executar uma divisão de duas variáveis, algo como 879 / 68. O resultado é 12,92, mas retornava uma resultado totalmente diferente, como 1,5. E antes que alguém pergunte: não tinha nada a ver com o Pentium FDIV Bug.

A primeira vista pode parecer que não, mas nem todos os erros são iguais. Por exemplo, o erro acima, só ocorria em ocasiões muito especiais, e por isso foi (é) difícil de detectar. Agora imagine se ao invés de 12,92 o resultado errado fosse 12,91. Talvez nunca fosse descoberto.

Outro ponto que diferencia os erros é quando a falha interrompe ou não o programa. Quer um exemplo famoso? Veja esse vídeo, quando Bill Gates se deparou com uma BSOD aka Blue Screen Of Death.
O usuário não gosta nem um pouco disso, mas para o analista/programador que recebe essa informação é mais fácil, na maior parte dos casos, resolver o problema do que aquele que o usuário fala: "Quando eu clico no botão enviar, às vezes dá um erro - mas não consegui pegar a mensagem.".

Conforme falei no post Curiosity e suas 2,5 milhões de linhas de código, existem algumas técnicas de programação que podem ser utilizadas para minimizar os problemas, mas infelizmente não existem programas sem bugs. O jeito é aprender a conviver com eles.

Veja também:
Bug no Zoner AntiVirus?
Qualidade dos softwares e SOs
Artigo 6 - Bug do ano 2000


Comentários

Postagens mais visitadas deste blog

Como aprender a programar

Netflix não mostra ícone de streaming

Google Hacking