Mergulhando no Universo dos Bugs: O Que São e Como Surgem

O termo bug certamente já faz parte do nosso vocabulário popular no Brasil, especialmente entre a parcela mais jovem da população. Afinal, não é raro ouvir alguém falar que algo é ou está “bugado”. Ou que algum jogo ou software é “cheio de bugs”.

Baixar Glossário Completo de Desenvolvimento Web

Mas o que é exatamente um bug? De onde veio esse termo e como ele se tornou tão popular? Como se faz para evitá-los? Para responder essas e outras perguntas é que nós escrevemos este artigo.

O Que é Bug?

Bug de software é um erro ou falha que ocorre num sistema ou programa de computador, resultando num comportamento incorreto, inesperado ou fora do que tenha sido pretendido pelo desenvolvedor.

Falhas do tipo podem ser difíceis de se prever e podem até mesmo resultar em problemas maiores, como perda de desempenho ou até mesmo numa vulnerabilidade a crimes virtuais – como o roubo de informações sensíveis.

Um bug nada mais é do que uma falha de lógica, que geralmente acontece quando a linguagem de programação encontra um conflito. Isso pode fazer com que fique impossível continuar executando um programa – ao menos da maneira correta.

Bugs podem ter diversas naturezas, como de lógica, aritmética, sintaxe, recursos, multi-threading ou de interface, entre outras. Para reconhecê-los e evitar que eles apareçam nas versões comerciais dos produtos, as empresas promovem métodos de debugging e de testes.

Mas vamos falar disso mais para a frente, pois agora é hora de conversarmos sobre a origem do termo bug.

Origem do Termo Bug

A palavra inglesa “bug”, que se traduz literalmente como “inseto”, já era usada como forma de descrever defeitos na área de engenharia desde a década de 1870. Naquela época, não havia nem computadores eletrônicos ou softwares para bugarem.

Em vez disso, há registros do termo sendo utilizado para descrever máquinas mecânicas funcionando de maneira incorreta. O famoso inventor Thomas Edison, por exemplo, enviou uma carta para um colega onde se referia a pequenas falhas como “bugs”.

O termo foi transplantado para o mundo dos computadores na década de 1940, quando a cientista da computação estadunidense, Grace Hopper, trabalhava com o computador Mark II de Harvard.

Depois de algum tempo tentando encontrar uma falha na máquina, os colaboradores dela encontraram uma mariposa presa no relé. Na época ninguém fez menção disso, mas com o tempo a história começou a ser contada como o primeiro caso de “debugging” no mundo da computação.

O Museu Nacional da História Americana, nos EUA, possui o livro de registros dos acontecimentos com a data de 9 de setembro de 1947. O operador William “Bill” Burke chegou a colar a mariposa encontrada e anotar “primeiro caso real de bug encontrado” no livro.

livro de registros do primeiro bug de computador da história, verificado no mark ii de harvard
Imagem exibe o diário que registra o primeiro bug de computador da história, com a mariposa responsável colada nele (Fonte: Wikimedia Commons)

Bugs Trazem Vulnerabilidades para seu PC

Um problema sério que os bugs podem representar é quando eles estão associados a falhas de segurança. Hackers mal-intencionados podem se aproveitar de vulnerabilidades em sistemas para cometer crimes, como o roubo de informações sigilosas.

Ao se aproveitar de bugs, criminosos podem espalhar vírus ou malware, que por sua vez podem ser usados para comprometer o computador do usuário. É por isso que algumas empresas criaram programas para tentar corrigir as falhas de segurança o mais rápido possível.

Exemplo disso é o Project Zero da Google, que desde julho de 2014 busca encontrar aquelas que são conhecidas como vulnerabilidades do dia zero. Ao descobrir a falha, a equipe dá 90 dias para que os responsáveis pelo software promovam sua correção.

Depois disso, eles informam ao público em geral sobre as falhas de segurança, para que eles então tomem suas próprias medidas para cuidar dos seus dados.

A Função dos Testes Beta

Antes de serem lançados no mercado, os softwares passam por uma fase de testes beta para encontrar bugs para serem resolvidos. Essa parte dos testes normalmente é realizada quando os todos os recursos já estão implementados, mas o programa ainda não está estável.

Algumas fases beta são promovidas apenas com funcionários de QA (Garantia de Qualidade), mas também há os chamados “beta releases”, onde os usuários são quem fazem os testes.

Esses releases podem ser públicos ou privados e são úteis para quando se lida com softwares de maior proporção, já que a maior quantidade de pessoas testando resulta num maior fluxo de feedbacks para a empresa.

É interessante notar que alguns tipos de programas são mantidos num estado de teste beta perpétuo. A cada novo lançamento, são adicionadas novas funcionalidades, mas sem nunca terem um uma versão final e estável.

A Google é uma empresa muito conhecida por fazer isso, com o Gmail e o Google News se mantendo num beta perpétuo na década de 2000. Até 2009, porém, ambos saíram a fase de testes beta.

Essa técnica permite que desenvolvedores esperam mais tempo antes de se responsabilizar pelos bugs e por oferecer um suporte total aos programas.

Software para Corrigir Bugs

O processo de encontrar e corrigir erros na computação é conhecido como debugging. Há um grande número de técnicas para se fazer isso, que vão desda análise do controle de fluxo até dumps de memória.

Como já mencionamos antes, o termo debugging surge junto dos primeiros usos da palavra bug para se referir a computadores. Ou seja, lá na década de 1940, com a história de Grace Hopper e do computador Mark II de Harvard.

Ferramentas automatizadas para encontrar bugs se chamam debuggers (ou depuradores). Nesse tipo de software, é comum executar o código do programa dentro de uma máquina virtual, para que então sejam buscadas e encontradas falhas dentro desse sistema.

Confira abaixo uma lista com alguns dos debuggers mais comuns:

Casos Famosos de Bugs

Seja pela atenção que ganharam da mídia ou pelo seu impacto, alguns bugs de computação tomaram o imaginário público e são lembrados até hoje pelas pessoas. O mais famoso deles certamente é o Y2K (o Bug do Milênio) – do qual já iremos falar – mas certamente há falhas que merecem menções honrosas (os desonrosas).

Uma delas foi a do foguete Ariane 5, que foi lançado pela CNES (Agência Espacial da França) no dia 4 de junho de 1996. Ele explodiu apenas 30 segundos após o lançamento, levando a um prejuízo de US$ 370 milhões. Por sorte, tratava-se apenas de um teste, e nenhuma pessoa foi ferida.

O motivo para isso? Um bug de computador. O erro estava na conversão de dados de 64-bits (muito mais complexo) para aproximações de 16-bits. Esse problema é conhecido como Integer Overflow (Extravasamento de Integral) e consiste na criação de um número maior do que era suportado pela variável de 16-bits.

Em junho de 2013, um homem chamado Chris Reynolds acordou um dia como a pessoa mais rica do mundo. Um bug no software do PayPal mudou o seu saldo para US $ 92,233,720,368,547,800 (isso mesmo, 92 quadrilhões de dólares).

Por um breve período de tempo, Reynolds foi um milhão de vezes mais rico do que o homem com mais recursos do planeta na época, o mexicano Carlos Slim (que tinha US$ 67 bilhões).

página de saldo do paypal exibindo valor de 92 quatrilhões de dólares
Por um breve momento em 2013, Chris Reynolds foi um quatrilionário (Fonte: CNN)

Quando o erro foi percebido, o PayPal rapidamente reverteu a conta de Reynolds para o valor original. Aproveitando a atenção da mídia naquele momento, a empresa se ofereceu para doar um valor não revelado para uma instituição de caridade da escolha de Chris Reynolds.

O Que é o Bug do Milênio

O Bug do Milênio (ou Bug Y2K) seria um erro onde se acreditava que, na virada do milênio, todos os computadores passariam a exibir a data 1º de janeiro de 1900, ao invés do ano 2000.

Isso porque, desde a década de 1960, era comum os softwares utilizarem apenas dois dígitos para representar o valor do ano. Isso economizava espaço em memória e, consequentemente, dinheiro. Com isso, registrava-se apenas o “60”, por exemplo, com o “19” que viria na frente ficando subentendido.

Com o passar do tempo, muitos programas foram atualizados para novos formatos, que suportavam o ano de 2000 solucionavam o problema. Mas, no final da década de 1990, constatou-se que empresas de grande porte ainda não tinham atualizado seu software para lidar com isso.

Para completar, ainda tinham as BIOS do sistema, que muitas vezes também só utilizavam dois dígitos para a data. Isso resultou principalmente na preocupação de que o sistema financeiro poderia sofrer com as consequências do bug.

Se a data fosse definida automaticamente para janeiro de 1900, os juros ficariam negativos e quem devia dinheiro passaria a ser o credor da dívida. Já os pagamentos de boletos que estavam para o primeiro mês do novo milênio acabariam ficando 100 anos atrasadas.

Como Ele foi Corrigido

No final das contas, o apocalipse que estava previsto acabou nunca se concretizando. Nenhum míssil nuclear foi disparado e nenhum avião acabou caindo por causa da data programada no sistema.

Mesmo assim, uma corrida para atualizar os programas foi promovida, com bilhões de dólares sendo gastos ao redor do mundo para isso. Além disso, na virada do milênio, a grande maioria dos usuários domésticos e das empresas já tinham adquirido computadores mais novos, com suporte para o ano 2000.

De maneira concreta, chegaram a acontecer alguns pequenos incidentes. Na Espanha, por exemplo, alguns parquímetros acabaram apresentando erros.

Na França, o instituto nacional de meteorologia publicou em seu site oficial a previsão do tempo para o dia primeiro de janeiro de 19100.  Já na Austrália, algumas máquinas de validação de passagem de ônibus pararam de funcionar.

Conclusão

Bugs de computador podem representar desde pequenos erros irritantes até falhas de segurança catastróficas. Eles também podem criar histórias divertidas, como a do quatrilionário Chris Reynolds – ou alguns famosos bugs de jogos de videogame.

De qualquer maneira, bugs são algo que os desenvolvedores de software buscam ao máximo evitar. É para isso que se promovem os testes beta e que se busca o máximo de feedback possível antes de lançar uma versão considerada final e estável de um produto no mercado.

Por isso, fica o alerta para que você sempre mantenha o seu sistema operacional e os seus programas atualizados. Isso é importante pois esses updates costumam trazer correções para bugs e falhas de segurança, mantendo seus programas e informações mais seguros.

Author
O autor

Carlos E.

Carlos Estrella é formado em jornalismo pela UFSC e tem as funções de redator, tradutor e SEO na Hostinger Brasil. Já trabalhou com jornalismo de games e tecnologia e hoje aplica essa experiência escrevendo posts e tutoriais no blog da Hostinger. Suas paixões incluem games, dar rolês com a namorada e amigos e ler artigos aleatórios da Wikipédia de madrugada.