Antes de começarmos a falar sobre debugging de código, é importante falarmos sobre o responsável por sua criação, o bug. Mas afinal, o que é um bug? Em linguagem computacional, um bug é um erro num programa, ou sistema, que produz um resultado incorreto ou inesperado. Mas bug, em inglês, significa inseto. Então, qual a relação entre insetos com erros computacionais?
O termo bug, usado para descrever erros técnicos, remonta, pelo menos, do ano de 1878, pelas palavras do grande inventor Thomas Edison, mas é mais comumente lembrado e associado à Grace Hopper (uma analista de sistemas da Marinha dos Estados Unidos) que, juntamente com sua equipe, descobriu um erro computacional causado por um inseto (uma traça) que havia ficado preso em um dispositivo de controle de intensidade de corrente elétrica, num circuito do computador Mark II.
Os operadores que o encontraram eram familiares com o termo (bug) de engenharia e guardaram o inseto com a nota: “Primeiro caso real de um bug a ser encontrado.”. Daí em diante, quando havia erros, ou falhas computacionais, Grace Hopper e sua equipe atribuíam os mesmos a um possível inseto, ou bug.
Este termo pegou e ficou até os nossos dias.
Agora que sabemos como surgiu o termo bug, fica mais fácil de entendermos de onde vem o termo debugging. No inglês, o “de” inserido no prefixo de uma palavra, pode indicar o seu antônimo, por exemplo: attached/detached (anexar/separar), compile/decompile (compilar/descompilar), etc.
Dito isso, temos que a definição do termo debugging, ou depuração, em português, é o processo de localizar e remover bugs (ou erros) em código de uma linguagem computacional ou hardware. Neste artigo vamos focar na parte do software.
Existem diversas formas ou técnicas de se fazer o debugging de um programa, algumas mais simples e outras mais complexas. Sendo assim, vamos começar por um procedimento bastante simples para entender o conceito base e depois vamos avançando.
Para realizar o debugging de um programa, podemos utilizar o seguinte método:
- Identificar: Primeiro, temos que identificar um problema que faz com que o programa não funcione da maneira esperada, causando erros;
- Isolar: O segundo passo é identificar e isolar a fonte deste problema, ou seja, sabemos que existe um problema, mas em que parte(s) do programa ele ocorre?
- Resolver: Por fim, consertar o código causador do problema e voltar para o passo um, até que não existam mais problemas.
Este é um processo necessário em praticamente todo o desenvolvimento de software. Quanto mais complexo é um programa, maior a chance de existirem erros e de se ter a necessidade de fazer o debugging dos mesmos. Quando identificados vários problemas num mesmo programa, é aconselhável realizar a priorização destes, ou seja, ordenar os bugs, do mais prioritário para o menos prioritário, para que os mais problemáticos sejam resolvidos primeiro. Uma correta priorização pode diminuir bastante o tempo de correção dos erros, já que alguns destes erros podem causar outros em várias partes do código.
Estatisticamente, devemos saber que a grande maioria dos bugs é causada por pessoas, tanto no desenvolvimento do código quanto no design do programa, e muito raramente irá acontecer de existirem erros causados, por exemplo, por compiladores que produzem código incorreto, ou pelo framework com o qual se desenvolve (o que não deixaria de ser uma falha humana, na construção do compilador, ou do framework).
Conforme a experiência demonstra, na maioria das vezes em que é encontrado um erro e este é dado como sendo da plataforma, do framework, ou mesmo da IDE, raras serão as vezes onde este erro não será, na verdade, do programador que desenvolveu o programa.
Então, antes de atribuir um bug para um terceiro, devemos procurar da melhor maneira possível pela verdadeira causa do problema.
Nã ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais