Hoje nós entendemos o que é bug como um erro inesperado ao executar um programa ou um comando dentro de um site, por exemplo. Porém, sua história está muito mais ligada a um hardware do que com um software.
Antes de contar como tudo começou, você precisa saber de duas coisas: a primeira é que o bug é uma palavra inglesa que significa inseto e a segunda é que os primeiros computadores do mundo não eram PCs — personal computers.
Isso quer dizer que as máquinas na época da I Guerra Mundial ocupavam o espaço de uma sala de aula de Universidade — para nossa história sobre o bug, a classe ficava em Harvard. Foi lá que o Mark I foi desenvolvido e alocado, sendo o primeiro mainframe programável do mundo, usado pela Marinha dos Estados Unidos da América.
Uma renomada cientista da computação, Grace Hopper, era responsável pelo Mark I, tendo trabalhado na liderança do time de programação que o desenvolveu. Depois de dias lidando com falhas de cálculo, a equipe não sabia mais o que fazer para reparar os erros. Foi então que Grace encontrou entre as peças e fios de Mark I uma mariposa morta.
A cientista recolheu o corpo do inseto, levando-o para sua sala e registrando em 9 de setembro de 1944 o primeiro caso de bug. Atualmente, nossos computadores já são bem menores e problemas com mariposas já não nos atingem mais, mas isso não significa que os bugs acabaram.
Aqui, você aprenderá:
- Oportunidades de trabalho com bugs
- Motivos para os bugs acontecerem
- Formas de diminuir os bugs
- Bugs conhecidos na história
Boa leitura!
Oportunidades de trabalho com bugs
Você sabia que muitas empresas oferecem trabalho com bugs? Podemos chamar de “caçada de insetos” e é uma oportunidade de trabalho para muitas pessoas, que são pagas para que encontrem os bugs antes de seus verdadeiros clientes ou personas de consumo.
Com o reporte de bugs, os programadores conseguem corrigi-los antes do lançamento — embora alguns, ainda sim, consigam escapar. O principal ponto dessa fase de teste é evitar perdas nas vendas e impactos negativos à marca da desenvolvedora e do software. Além disso, falhas de seguranças são corrigidas, evitando exposição de informações sensíveis.
Os bug bounties podem trabalhar para diversos tipos de empresas, como a Netflix, Microsoft, Google, Samsung e outras. Existem dois momentos em que isso acontece: nos alfa e beta testes.
A seguir, explicamos melhor sobre cada um.
Alpha test
As versões alfa são as primeiras a serem testadas. São assim chamadas porque seus testes ocorrem na própria plataforma de desenvolvimento e por usuários primários.
Esses usuários nada mais são do que os colaboradores da empresa de desenvolvimento, mas não os mesmos que trabalham na programação da aplicação.
Após essa etapa, vem a beta.
Beta test
Já a versão beta teste é destinada a usuários reais do programa, ou seja, nós consumidores que compramos o produto final.
Nesse tipo de teste, há uma breve temporada de inscrições gratuitas para as pessoas participarem da avaliação. Esse grupo é considerado sortudo por muitos, pois acabam conhecendo o software bem antes do grande público.
Motivos para os bugs acontecerem
Como dissemos, hoje conhecemos o que são bugs mais por atrapalharem o uso de aplicações e programas inteligentes.
Ou seja, eles são erros que acontecem em linhas de código programáveis para desenvolver os softwares que usamos. Então, isso quer dizer que o próprio programador pode evitá-los?
Não é bem assim, apesar de uma pesquisa nos dizer que os programadores de fato gastam mais tempo corrigindo bugs do que programando mesmo. Os softwares costumam ter centenas de linhas de código, em que cada uma gera um ou mais comandos que serão ativados quando nós, usuários, interagirmos com a aplicação.
Então, alguns bugs podem ocorrer por causa da mudança entre ambientes — onde foi feito e onde está instalado.
Os bugs também podem ocorrer conforme quantidade de comandos enviados, o que se sobrepõe à sua capacidade de processamento e acaba por gerar uma falha, o programa se fecha sozinho ou fica inerte.
O fato é que evitar um bug é muito difícil, pois além das variáveis que o programador não controla, existem os erros que todo ser humano está passível de cometer.
O que é 504 gateway timeout e como resolvê-lo definitivamente!
Lógica por trás do bug
Para explicar de maneira simples, vamos pensar em um jogo de computador. Para que ele funcione bem, diversos times de programadores trabalharam em blocos.
O menu foi desenvolvido separado dos itens do cenário, por exemplo, sendo que cada função dentro do jogo é um código variável. Então, qualquer interação será um comando para o software executar.
Digamos que você quer andar para a frente com seu personagem de jogo, usando o teclado ou o mouse para se movimentar.
Mas e se você quiser pular enquanto caminha? Isso pode acontecer de duas formas:
- seu personagem continuará andando para frente, pulará e andará novamente para frente;
- seu personagem para de andar, pula e fica parado.
Lembra que falamos que os times de programação trabalham em separado, geralmente, e desenvolvem cada parte isolada? Bom, no caso número 1, nós temos um ótimo exemplo de quando a equipe de programação está bem engajada e tem comunicação eficiente, pois seu personagem fez todos os comandos que foram solicitados.
Porém, perceba que no caso número 2 o personagem interrompeu o comando de andar para executar o comando de pular, certo? Aqui o problema é a falta de integração entre os diferentes comandos, em que o software entende que não há continuidade e sim apenas gatilhos. Ou seja, se acionar o gatilho certo, funciona, se não for o gatilho certo, nada feito.
Então, você precisaria usar o mouse ou teclado para acionar o comando de andar novamente e aí seguir em frente com o personagem.
Como dissemos, se a equipe está bem entrosada e se comunica eficientemente, os bugs diminuem.
No entanto, esses não são os únicos motivos: a lógica de programação é a outra razão por trás do que é bug.
Isso quer dizer que os comandos de programação — as variáveis if , else e then são exemplos — respeitam uma lógica de pensamento matemático e racional. O programador precisa descrever a lógica completa para que o comando seja executado como imaginado.
No segundo exemplo, em que o personagem não anda quando pula, o código pode ter sido formatado assim:
- if seta para cima then andar;
- if espaço then pular.
Então, o software entende “se” a seta para cima for acionada “então” o personagem anda. Assim como, “se” o espaço é acionado “então” o personagem pula. Para que ele fizesse ambas funções ao mesmo tempo, poderia ser feito assim:
- if seta para cima then andar;
- if espaço then pular;
- if seta para cima e espaço else andar e pular.
Perceba que apenas acrescentando um terceiro comando que une ambas ações já solucionaria esse bug em específico. Essa terceira linha mostra outro (else) caminho de comandos para o software executar, mostrando que ele pode fazer as duas ações em conjunto.
Formas de diminuir os bugs
Existem algumas técnicas que podem ajudar a diminuir a ocorrência de bugs nos sistemas. Algumas nós já falamos, mas se referem ao momento de desenvolver softwares: comunicação integrada entre os times de programadores e fluxo dinâmico de trabalho, mas que permita registro das informações trocadas.
A Análise SWOT pode ser uma ótima opção na criação desses projetos. Assim, qualquer equipe envolvida no processo consegue acompanhar o que precisa ser feito, corrigido ou monitorado.
Quando se trata de nós, simples usuários, as dicas são outras. Veja mais abaixo!
Não sobrecarregue
Para evitar problemas com bugs nos softwares, é bom não sobrecarregar o processamento com excesso de comandos desnecessários.
Você sabia que vários cliques não vão destravar seu computador? Bem pelo contrário, você está sobrecarregando a capacidade de processamento dele com comandos inúteis.
O fundamental aqui é respirar fundo e esperar. Se não resolver, reiniciar seu dispositivo é a opção.
Evite os conflitos
Mais acima, dissemos que diferentes programas podem conflitar entre si, pois eles têm centenas de linhas de comando e alguma variável pode “atropelar” a outra. Uma boa forma de evitar bugs na execução de softwares é evitar conflitos de sistemas.
Aqui você precisa entender pelo menos o objetivo dos programas que está usando e evitar a execução daqueles que são semelhantes.
Porque é possível que utilizem arquivos e comandos iguais ao se comunicarem com o Windows ou iOS. Por exemplo, firewall do sistema operacional e um jogo online ou programa que usa a Internet.
A função do firewall é bloquear entradas e saídas indevidas na sua conexão web, justamente o que seu jogo ou programa está tentando fazer e por isso foi bloqueado.
Bugs conhecidos na história
Agora que você já entende bem o que é bug, consegue imaginar quais foram os mais conhecidos da humanidade?
Além da mariposa no Mark I, claro, o Bug do Milênio talvez seja o mais famoso deles. Antigamente, os programadores usavam apenas um par de números para identificar os anos, então, 1980 era escrito apenas como 80.
O problema é que depois da virada da meia noite de 31 de dezembro de 1999, os computadores interpretaram o 00 de 2000 como 1900. Se você não lembra, ou é muito novo para saber disso, o pânico foi instaurado, principalmente pela crença de que o mundo acabaria na entrada do novo milênio. Então, o que era um bug virou a predição do final da humanidade.
Outra falha conhecida ocorreu em 1998, quando uma sonda foi enviada para Marte. O desenvolvedor equivocou-se nas unidades de medida, utilizando pés e milhas em vez de metros e quilômetros — padrão na NASA. O resultado foi a queda em solo marciano, perdendo milhares de dólares.
Como você pôde ver, bugs podem ser imprevisíveis, mas existem algumas formas de contornar a situação e evitá-los.
Quer ter um blog para seu negócio, livre de bugs? Confira, agora, nosso guia WordPress para blogs corporativos!
[rock_performance]
CONTEÚDO CRIADO POR HUMANOS
Encontre os melhores freelancers de conteúdo no WriterAccess.
CONTEÚDO CRIADO POR HUMANOS
Encontre os melhores freelancers de conteúdo em WriterAccess.