CodeGym /Cursos /Python SELF PT /Debug de Programa

Debug de Programa

Python SELF PT
Nível 18 , Lição 2
Disponível

8.1 Aparecimento de bugs

Debug de software é o processo de busca e correção de erros ou bugs em um programa. Esse processo é uma das partes mais interessantes e importantes do desenvolvimento de software e ajuda a garantir o funcionamento correto dos programas.

História do termo "bug"

O termo "bug" (erro) no contexto de programas de computador foi usado pela primeira vez na década de 1940. Embora o conceito de "bugs" já existisse antes da introdução de computadores, referindo-se a falhas mecânicas em vários dispositivos.

O primeiro caso documentado do uso do termo "bug" em tecnologia de computadores foi com uma equipe que trabalhava no computador Mark II na Universidade de Harvard em 1947(!). A equipe descobriu que um dos relés da máquina não funcionava porque uma mariposa havia entrado nele. Eles removeram o inseto e registraram isso no diário como o "primeiro caso real de detecção de inseto" (literal bug).

Embora não tenha sido a primeira vez que o termo "bug" foi usado para se referir a um erro, este incidente se tornou famoso e ajudou a popularizar o termo "bug".

Debug de programa

Debug é o processo de busca, diagnóstico e correção de bugs no software. O processo de debugging envolve várias etapas:

  • Detecção do erro: Identificação dos sintomas que indicam a presença de um erro no programa.
  • Reprodução do erro: Criação de condições em que o erro apareça novamente para melhor entender sua natureza.
  • Diagnóstico do problema: Uso de várias ferramentas e métodos para analisar o código e encontrar a causa do erro.
  • Correção do erro: Fazer alterações no código para eliminar o erro.
  • Teste: Verificação da correção e teste do programa para garantir que o erro foi corrigido e não surgiram novos problemas.

Então, bug é um termo geral para qualquer erro em programas, e debug é o processo de detecção e eliminação desses erros.

8.2 Ferramentas e métodos de debugging

Log

Adicionar logs no código do programa permite monitorar sua execução e obter informações sobre o estado das variáveis e operações em diferentes pontos da execução do programa. Para logging em Python, existe uma excelente biblioteca — logging.

Exemplo de uso de logging:


import logging

# Configurando logging para saída de informações de debug
logging.basicConfig(level=logging.DEBUG)

def divide(a, b):
    # Log da tentativa de divisão
    logging.debug(f"Dividindo {a} por {b}")
    if b == 0:
        # Log de erro se b for igual a 0
        logging.error("Tentativa de divisão por zero!")
        return None

    # Executa a divisão se b não for igual a 0
    return a / b

result = divide(10, 2)
print(result)

Uso de Debuggers

Debuggers são ferramentas que permitem aos desenvolvedores executar um programa passo a passo, definir breakpoints, verificar valores de variáveis e alterá-los durante a execução do programa.

Debuggers populares:

  1. GDB: GNU Debugger para C, C++ e outras linguagens de programação.
  2. PDB: Debugger embutido no Python.
  3. Visual Studio Debugger: Debugger embutido no Microsoft Visual Studio.
  4. PyCharm Debugger: Debugger embutido na IDE PyCharm para Python.

Exemplo de uso do PDB


import pdb

def faulty_function(a, b):
    pdb.set_trace()  # Definição de breakpoint
    result = a / b
    return result

faulty_function(10, 0)

Quando o programa atinge pdb.set_trace(), ele pausa, e você pode executar comandos do debugger, como next (próximo passo), print (exibir valor da variável) e outros.

Vamos estudar o debug de programas usando o debugger embutido no PyCharm.

8.3 Uso do debug

De forma geral, o debug inclui o uso ativo de ferramentas de depuração e práticas para identificação e correção de erros.

Definição de breakpoints: Defina breakpoints no código para pausar a execução do programa nos pontos de interesse.

Execução passo a passo: Execute o programa passo a passo, observando as alterações no estado do programa e nos valores das variáveis.

Análise de variáveis: Examine os valores das variáveis e expressões em diferentes etapas da execução do programa para identificar dados incorretos ou erros lógicos.

Correção de erros: Faça alterações no código para corrigir os erros encontrados.

Re-teste: Após corrigir os erros, teste novamente o programa para garantir que o erro foi corrigido e não surgiram novos problemas.

Parece simples, né? Na próxima aula, vamos passar por todas as etapas em detalhe :)

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION