Pular para o conteúdo principal

Bug - Significado

Bug

O que é bug?

Na informática onde o termo se disseminou, o bug de computador ou simplesmente bug, é quando uma situação ou comportamento inesperado ocorre e em alguma medida compromete de modo parcial ou até mesmo por completo, o uso do computador e/ou da aplicação.

Origem do termo Bug:

Circulam diferentes versões do porquê utiliza-se a palavra inseto em inglês para designar quando um equipamento apresenta mau funcionamento.

O que há de comum em todas elas, é que a causa do problema, é a presença de algum inseto na parte interna dos aparelhos, afetando o seu funcionamento.

Foi por exemplo, essa a causa da falha identificada no computador Mark II, na universidade de Harvard em 1947, pela analista de sistemas da marinha dos Estados Unidos, Grace Brewster Murray Hopper, a qual após um longo período de investigações, descobriu uma mariposa em um interruptor eletromecânico.

É importante ressaltar, especialmente para os mais novos, que na época todo equipamento eletrônico utilizava válvulas, as quais emitem luz e calor, como se fossem pequenas lâmpadas e atraem alguns insetos, tal como acontece em torno de lâmpadas incandescentes.

Por essa razão, era comum em aparelhos de televisão antigos, quando abertos, encontrar muitos insetos mortos em seu interior.

O termo popularizou-se quando os computadores pessoais passaram a fazer parte do cotidiano de empresas e pessoas, sempre que alguma causa não evidente à primeira vista ocorria e exigesse alguém com capacidade técnica para investigar a origem do problema.

Embora sejam mais comuns os Bugs relacionados com a programação dos sistemas, é errado pressupor que sempre seja essa a causa. 

Uma falha em um componente de hardware também pode provocar o surgimento de um Bug.

Por exemplo, se um pente de memória RAM tem um determinado tipo de defeito ou mau funcionamento nos componentes que retêm os dados, produzirá erros diversos toda vez que um programa tentar gravar ou recuperar informação do respectivo endereço de memória, mas com efeito nos programas que tentam usar a memória defeituosa, sugerindo um Bug de software.

Mesmo sendo o hardware uma possível fonte de produção de Bugs, é inegável que na grande maioria das vezes, eles estejam originem-se no software, sendo que estes hoje estão presentes em praticamente tudo e não mais apenas em computadores.

Do seu relógio de pulso digital ao smartwatch, passando pela smart TV e pelo aparelho de streaming de vídeo, nas mais modernas geladeiras e aparelhos de micro-ondas, nos modelos de carros atuais e no sistema de som dentro deles, no console de videogame ou no smartphone, no modem ou no roteador Wi-Fi da sua casa, na câmera IP do sistema de segurança ou na catraca do ônibus, para citar apenas alguns, há pelo menos um ou muitos software que responde pelos recursos que o respectivo aparelho oferece.

E cada um desses softwares, pode ter um ou até vários Bugs. Essas falhas em softwares são em sua maioria, decorrentes de problemas de lógica de programação.

Se o programador responsável pelo código não prevê uma condição que a execução do programa possa produzir, quando a condição acontece, o respectivo programa não será capaz de produzir uma resposta válida e prevista, travando, encerrando ou dando algum tipo de erro ou o nosso velho e conhecido Bug.

Versões alpha, beta e os Bugs:

Por mais experiente e qualificado que seja o programador e mesmo a equipe inteira, o mais comum que produz um software qualquer, prever possíveis erros ou identificá-los quando acontecem, é tão mais difícil quanto mais sofisticado e complexo é o sistema.

Programas com milhões de linhas de código não são raros e por essa razão, o procedimento conhecido como debugging ou depuração, que é a identificação e correção das falhas (Bugs), nem sempre são capazes de preveni-los ou mesmo resolvê-los todos.

É por essa razão que geralmente se tem as versões alpha e beta dos programas antes do seu lançamento. Na fase alpha, o programa é liberado para testes que normalmente são conduzidos por funcionários da empresa de software e alguns programadores. 

Já na fase beta e dependendo da empresa e sua política de desenvolvimento, os usuários finais que fazem os testes. Podem haver particularidades dependendo da empresa e do produto.

Às vezes o programa é liberado para download indiscriminado, mas com um alerta de que se trata de uma versão beta e não a definitiva e que por essa razão, há possíveis erros que devem ser relatados. 

Muitas vezes o usuário não precisa fazer nada e sempre que um erro ocorre, um log relativo ao mesmo é enviado automaticamente para o desenvolvedor.

Há empresas que têm programas de beta testers, em que apenas os usuários inscritos no programa têm acesso para download e como o nome faz supor, realizar testes. 

Eles devem relatar sua experiência, os erros identificados e até dar sugestões de melhorias.  A Microsoft é uma empresa que tem um programa  desse tipo, O  (windows Insider).

Também existem empresas de desenvolvimento de software, que além das versões definitivas e pagas, disponibilizam versões beta e gratuitas de alguns programas, às vezes sem alguns recursos e condicionam a instalação nos termos de licenciamento, que por ser uma versão beta, não dá direito a suporte e eventuais logs de erros são automaticamente enviados para análise.

Independente dos modelos acima ou de possíveis variações, um programa beta tem por principal objetivo testar o universo de possibilidades que algumas vezes apenas o usuário final é capaz de produzir, bem como ao aumentar o número de testadores, aumentam também as chances de Bugs muito específicos ocorrerem em situações reais.

O Bug do milênio:

Um dos Bugs mais famosos e que mais preocupação produziu, tenha sido o Bug do milênio, também conhecido como Bug Y2K (year 2000). O problema era associado à virada do milênio, ou seja, na passagem do ano de 1999 para 2000.

Isso porque na época, muitos dos sistemas de computadores e programas faziam referência ao ano usando apenas as casas de unidade e dezena, ficando subentendido que 99, era na realidade 1999.

No entanto, pelo mesmo raciocínio imaginava-se que com a chegada do ano 2000, os sistemas ao invés de considerar o ano correto, constariam como 1900 e então tudo que levasse em consideração o ano para algum tipo de cálculo ou operação, daria erro, como por exemplo, o cálculo de juros em operações bancárias.

A “economia” na determinação dos dígitos, vinha de uma época em que os sistemas computacionais operavam com limitada capacidade de memória e por essa razão, qualquer coisa que se conseguisse eliminar, fazia diferença. Empresas do mundo todo que tinham sistemas que fizessem algum uso de datas, correram para produzir e disponibilizar atualizações.

Quais as fontes dos bugs?

Como já vimos, a principal causa é uma falha na estrutura de programação, um erro de lógica, que por sua vez acarreta um erro de execução quando uma condição não prevista acontece.

No seu notebook, por exemplo, você pode ter literalmente dezenas de fontes Bugs, já que ele tem diferentes softwares de diferentes fabricantes.

Tudo começa quando você o liga e que é carregada a BIOS (Basic Input / Output System). Depois vem o sistema operacional e que além do kernel  (o núcleo do sistema) carrega Bibliotecas e serviços diferentes, como por exemplo, os drivers da placa de vídeo, de som e de outros componentes de hardware.

Há ainda os softwares de segurança responsável pelo firewall, antivírus, impressora, Wi-Fi e rede física e um monte de outras coisas que você não usa diretamente, mas que são essenciais para o Windows, para o Linux ou para outro sistema operacional funcionar plenamente.

Ou seja, nem tratamos da sua suíte de escritório, dos aplicativos da empresa ou do seu navegador web e de tudo o mais que você instalou desde que comprou a máquina.

Dependendo do programa usado, ele carrega outros ou pelo menos Bibliotecas e que são trechos de código que conferem funcionalidades adicionais, como por exemplo, um segundo idioma no seu editor de texto, ou a inserção de fórmulas matemáticas, na sua planilha de cálculo.

Tudo isso é programação e, portanto, sujeito a conter um Bug e seu respectivo efeito colateral. Visto de outra forma, quanto mais programas no seu notebook ou apps no seu smartphone, maiores as probabilidades dos “insetinhos” lhe produzirem algum aborrecimento.

Como corrigir um bug?

O caso aqui não é a correção propriamente dita, mas como nos livrarmos de alguns. Há dois caminhos, sendo um mais técnico e outro acessível a qualquer usuário, mesmo os mais leigos quando o assunto é tecnologia.

Eliminação de bugs usando logs do sistema:

O mais técnico , mas nem tanto, faz uso do que se conhece por logs do sistema operacional. Especialmente nos casos dos sistemas operacionais mais usados (Windows, Linux e MacOs), boa parte das ações executadas geram logs e que nada mais são do que registros do que é feito e gravados em arquivos de texto.

Sendo assim, o primeiro passo é identificar quais logs existem e onde são gravados, o que pode mudar de acordo com a versão do sistema operacional usado e no caso do Linux, além da versão, a distribuição Linux instalada.

O que nos interessa, são os logs de erros, pois geralmente neles ficam gravadas informações relativas ao erro produzido e que acarretou por exemplo, o fechamento de um programa. 

Além do erro, costumam constar data e horário, o que facilita a identificação do evento exato, desde que naturalmente tenha se verificado tal informação antes de recorrer ao log. Ao se proceder assim, coisas surpreendentes podem ser descobertas. 

De repente você vê o motivo do seu editor de texto travar sempre que manda imprimir um documento, deve-se a um erro no driver da impressora e que ao realizar a atualização por meio do site do fabricante, o bug deixou de acontecer.

Ou que o congelamento da tela ao abrir um determinado programa, ocorre porque ele está consumindo muita memória RAM e que um upgrade no equipamento, pode ser a solução do problema.

Algumas dicas de eliminação de bugs para leigos:

A remoção de alguns bugs é possível por meio de procedimentos simples:

Remoção de bloatware: bloatware é software que “incha” (bloat) o sistema operacional. 

Alguns fabricantes de notebooks e smartphones instalam vários programas nos equipamentos, sendo que alguns deles são totalmente inúteis.

Instale apenas o necessário: muita gente instala qualquer coisa para testar e mesmo que depois não faça uso, mantém o programa ou app no computador ou celular. 

Remova tudo o que não é usado, pelo mesmo motivo da dica anterior.

Atualização de firmware / BIOS: esse é um procedimento que mesmo para quem tem conhecimentos mais avançados, requer cautela, visto que se for feito de modo incorreto, pode inutilizar o aparelho. 

Só o realize quando o aparelho estiver com a bateria cheia, com conexão estável com a Internet e por intermédio da atualização oficial do fabricante e sendo assim, costuma ser seguro e simples.

Updates do sistema operacional: muitos dos bugs estão relacionados com o sistema operacional. 

A boa notícia é que especialmente os mais críticos costumam receber updates (atualizações) periódicos. 

Se seu sistema operacional tem a opção de atualização automática, ative-a.

Drivers: drivers de vídeo, som, rede, entre outros, costumam fazer parte dos updates do sistema operacional. 

Porém no caso de placas de vídeo dedicadas, impressoras, monitores externos, entre outros, é preciso verificar o modelo usado no site do fabricante, em busca de versões mais atuais e que geralmente corrigem bugs identificados nas anteriores.

Programas: como no caso dos drivers, acessar o site do desenvolvedor e verificar se existem atualizações para seu software, é altamente indicado. 

Alguns programas, oferecem a opção durante o processo de instalação de atualizações automáticas quando disponíveis.

Pirataria:  nunca instale programas piratas ou de procedência duvidosa! 

A suposta economia conseguida ao burlar o licenciamento pago, muitas vezes pode custar muito caro mais tarde, se houver um bug malicioso.

Comentários

Mais vistas

Autocode - Significado e Funcionalidade

O Que é Autocode? O Autocode foi uma das primeiras linguagens de programação de computador, desenvolvida em 1952 por Alick Glennie para o computador Mark 1 na Universidade

Semáforo - HTML, CSS e JavaScript - Tutorial

Semáforo Funcional: Aprenda a criar um semáforo funcional com este tutorial detalhado. Descubra como implementar a lógica de controle de um semáforo usando HTML, CSS e JavaScript.

UI vs UX - Diferenças

Entendendo as diferenças entre UI e  Ux: Quando se trata de design de produtos digitais, os termos UI e UX são frequentemente usados juntos, mas representam conceitos distintos. Embora