Tá tudo bugado!

Nesse blogpost já falamos um pouco sobre bugs, listamos alguns dos bugs mais comuns nos sistemas Android e iOS e demos algumas informações de como reparar esses problemas. Neste blogpost resolvemos ir um pouco mais a fundo, esclarecendo o que são bugs e falando um pouco de como os bugs podem surgir. 

Por definição do dicionário, um bug é um termo da informática que significa: defeito, falha ou erro no código de um programa que provoca seu mau funcionamento.

Print tirado daqui.

 

Mas o que exatamente isso se quer dizer e como surgiu o termo?

A palavra bug vem do inglês “inseto” e na informática deriva de um caso dos anos 40 que realmente envolveu um inseto. O computador Harvard Mark II apresentou mau funcionamento devido a uma mariposa que estava em seu interior. O achado foi documentado por uma engenheira, e assim os erros apresentados por um computador começaram a ser chamados de bug.

Hoje em dia qualquer coisa que apresenta mau funcionamento ou algum erro está “bugado” (verbo adaptado da palavra ‘bug’). Pode ser o celular que está bugado, o computador ou o aplicativo no smartphone. Quando encontramos alguém falando “meu celular tá todo bugado”, a pessoa provavelmente quer dizer que o celular está lento ou “louco”, não operando corretamente.

Qualquer erro ou problema em informática é um bug, mas geralmente essa palavra é atribuída a erros de lógica durante o processamento de dados. Os bugs são causados por falhas na lógica do programa ou por uma lógica incompleta. Isso se quer dizer que o código-fonte do programa apresenta algum erro ou está incompleto. A qualidade do software fica comprometida, gerando comportamento inesperado ou incorreto.

Para entender melhor do que estamos falando, alguns exemplos: pensemos em dois usuários que têm uma calculadora instalada no celular. Um dos usuários pensa em fazer a conta 3+4, que deve resultar no número 7. Quando a calculadora retorna um valor diferente de 7 para essa conta, existe um erro, ou bug. Esse bug pode estar em qualquer lugar no código, mas imaginemos então que o sinal da conta 3+4 está errado. O usuário acha que o programa está completando a ação 3+4, mas ao invés do sinal de adição (+), está o sinal de multiplicação (*), assim a nossa calculadora realiza a operação 3*4, mesmo quando é solicitada a operação 3+4. Como nesse caso o sinal está errado, temos um erro no código-fonte, ou seja, o programa foi escrito com um erro. O usuário provavelmente vai desinstalar a calculadora do smartphone.

Agora imaginemos que o segundo usuário quer realizar a conta 2+2, que resulta em 4. Como a nossa calculadora apresenta um erro em seu código-fonte, a operação que vai ser realizada é 2*2, ao invés de 2+2. Note que nesse caso o bug não aparece, pois 2*2 é igual a 4, assim como 2+2 é igual a 4. Isso nos mostra que nem todos os bugs aparecem para todos os usuários, pois assim como no nosso caso, nem todas as pessoas realizam as mesmas ações e/ou se comportam da mesma maneira ao utilizarem um programa no PC ou um aplicativo no smartphone etc.

 

Ocorrência dos bugs

Podem ser várias as razões de ocorrências de bugs. Imagine o seguinte cenário: o programador da calculadora descobriu o erro que tinha no código-fonte (a confusão dos operadores matemáticos) e já o corrigiu, mas agora quer adicionar uma outra funcionalidade à calculadora. Ele quer implantar a operação de divisão (/). Assim a calculadora vai poder fazer contas de soma, multiplicação e agora divisão também.

A inserção de uma nova funcionalidade pode gerar um bug. Mas por quê? Simples: para inserir uma funcionalidade nova, o programador precisa mexer no código-fonte (na estrutura) já montado e pode acidentalmente alterar alguma coisa ou deixar de alterar algo, gerando assim um bug. No caso da calculadora na tela da divisão ele nomeou o botão que chama “voltar” para “volte por aqui”. Esse simples ato gerou um bug, pois todos os botões que se chamavam “voltar” foram acidentalmente renomeados para “volte por aqui”, uma coisa que não deveria ter acontecido.

Esse erro não gerou nenhum defeito ou impedimento no uso da calculadora ou de alguma funcionalidade dela, mas como não deveria ter acontecido (pois a alteração do nome do botão não era planejada) pode ser considerado um bug.

Dito isso, também podemos apontar que existem bugs de todos os tipos. Falhas na segurança de um sistema, falhas na resposta de uma ação que o usuário tomou (a ação não é executada ou não é executada corretamente), mudanças não planejadas no layout/design etc.

 

Mas e aí, é possível evitar o surgimento de bugs no meu sistema?

Mais ou menos. Digamos que não dá para desenvolver um software 100% livre de bugs, mas para evitar o máximo de bugs os desenvolvedores precisam testar seus softwares com todos os testes que tem à disposição. Assim asseguram que (quase) nenhum erro passe para a versão final, para depois atrapalhar a experiência do usuário final.

 

 

Imagem de destaque: insetos por Freepik e foto por Goran Ivos.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *