Bug de software
Um bug de software é um problema com o código em um programa de computador, o que faz com que ele não funcione corretamente. Eles podem causar inconvenientes ao usuário e podem fazer seu computador travar ou congelar. A maioria dos programas de computador tem bugs. Um programa que tem um grande número de bugs (ou possivelmente um único ou poucos bugs sérios) é considerado um buggy.
A maioria dos bugs é causada por má programação do desenvolvedor, mas às vezes eles podem ser causados por problemas de compilação. Quando os bugs são encontrados, as pessoas enviam relatórios de bugs ao desenvolvedor para informá-los sobre o bug e deixá-los corrigi-lo.
Às vezes, as pessoas dizem que seu computador tem um bug quando algo está errado com ele. O problema geralmente é causado por um vírus de computador que infectou seu computador e está tornando-o lento ou fazendo coisas diferentes.
Alguns insetos são inofensivos, por exemplo, muitos jogos de vídeo permitem que objetos se movimentem de forma incorreta através das paredes. Outros bugs são mais graves, por exemplo, um bug em um sistema de navegação que provoca a explosão de um avião.
Tipos de insetos
Estouro de amortecedor
Um buffer overflow acontece quando um programa escreve ou lê de uma área da memória que não é suposto acessar.
Transbordo aritmético
Um transbordo aritmético acontece quando um número contido em uma variável é aumentado além do número mais alto que a variável permite. Isto geralmente faz com que o número volte a zero.
Laço infinito
Um loop infinito acontece quando um programa entra em um loop (uma série de instruções que é repetida muitas vezes) e não há como sair do loop. Isto pode causar o congelamento do programa.
Erros de arredondamento
Se uma variável de ponto flutuante não tem precisão suficiente, o número armazenado nela pode ser impreciso. Isto pode causar vários problemas dependendo do tipo de programa, por exemplo, pode fazer com que um programa de navegação navegue para um local não intencional, ou som distorcido em um programa de gravação de áudio.
Divisão por zero
A divisão por zero é uma operação matemática inválida. Se um programa divide um número inteiro por zero, ele irá falhar. No Linux, a mensagem exibida quando este erro ocorre é "exceção de ponto flutuante", mesmo que os números de ponto flutuante não estejam envolvidos. A matemática de ponto flutuante às vezes permite a divisão por zero. Isto normalmente resultará em um valor especial "não um número".
Problemas de grampeamento
Nos videogames, problemas de recorte, também chamados problemas de detecção de colisão, ocorrem quando um objeto passa por uma barreira (como uma parede, piso ou teto) pela qual não foi projetado para passar. Este é um erro muito comum encontrado em muitos jogos de vídeo. Isto pode acontecer, por exemplo, no Doom 2 quando um monstro esmagado é ressuscitado por um arco-vile. Problemas de grampos podem ser usados com freqüência como tática de economia de tempo em corridas de velocidade, por exemplo, em Super Mario 64 é possível pular subindo a escada em espiral do castelo saltando pelo teto.
Bugs de segurança
Os bugs de segurança são bugs que permitem que um intruso tenha acesso ao computador, ou que provoquem o travamento do computador. Causar o travamento do computador é chamado de ataque de negação de serviço. Os bugs de segurança são considerados especialmente importantes para serem corrigidos porque podem permitir que intrusos roubem informações importantes, tais como números de cartões de crédito ou senhas. Exemplos de bugs de segurança incluem Heartbleed e Shellshock.
Erros
Um erro é um bug que tem sido usado como recurso. Um exemplo seria um bug em um telefone Android que permite aos usuários obterem acesso root.
Bugs de hardware
Alguns bugs afetam o hardware (as partes físicas de um computador) ao invés do software. Por exemplo, a execução do bloqueio de
instruções cmpxchg8b eax
em processadores Pentium antigos faria com que o processador parasse de funcionar até ser reinicializado. Como os bugs de hardware são falhas de projeto físico, eles não podem ser corrigidos com uma atualização de software, embora possa ser possível contornar (ocultar) o bug com uma atualização de software.
Perguntas e Respostas
P: O que é um bug de software?
R: Um bug de software é um problema no código de um programa de computador que faz com que ele não funcione corretamente.
P: Quais são as consequências de um bug de software?
R: Um erro de software pode causar inconveniência ao usuário e fazer com que o computador trave ou congele.
P: Todos os programas de computador têm bugs?
R: Sim, a maioria dos programas de computador tem bugs.
P: O que é um programa com bugs?
R: Um programa com bugs é aquele que tem um grande número de bugs, ou possivelmente um único ou alguns bugs graves.
P: Quem é responsável pela maioria dos bugs em programas de computador?
R: A maioria dos bugs é causada pela má programação do desenvolvedor, mas, às vezes, pode ser causada por problemas no compilador.
P: O que as pessoas fazem quando encontram um bug em um programa de computador?
R: Quando os bugs são encontrados, as pessoas enviam relatórios de bugs ao desenvolvedor para informá-lo sobre o bug e permitir que ele o corrija.
P: O que as pessoas querem dizer quando afirmam que seu computador tem um bug?
R: Quando as pessoas dizem que seu computador tem um bug, elas geralmente querem dizer que há algo errado com ele, o que geralmente é causado por um vírus de computador que infectou o computador e o está deixando lento ou fazendo coisas diferentes.