LÓGICA E LINGUAGEM DE PROGRAMAÇÃO

Técnicas básicas de depuração

Registro de Aula S18A3 — Semana 18 · Aula 3 – Breakpoint, inspeção de variáveis e step over
Unidade 3 – Qualidade de software: depuração e testesBase: Capítulos 20, 32 a 35 e 43 — repetição, funções e leitura de errosTempo: 50 minEntrega: AVA (relatório preenchido)Arquivo: NOME_TURMA_S18A3
ATIVIDADE PROPOSTA

O que vocês vão resolver

O relatório financeiro corrompido. Vocês são da equipe de engenharia de uma rede de lojas. A função processar_fechamento_caixa deve receber as vendas do dia, calcular 10% de imposto sobre cada uma e devolver o faturamento total acumulado. Um teste unitário foi escrito — e está falhando: o faturamento retornado é muito inferior ao esperado. A missão é depurar o código e encontrar o defeito.

OBJETIVOS

O que vocês vão aprender aqui

SOLUÇÃO DIGITAL

Ferramenta usada nesta aula

DBG
Depurador da IDE (VS Code, PyCharm)
Esta atividade usa o modo debug da IDE — não a execução normal. Vocês vão marcar um breakpoint na margem esquerda do editor, rodar em modo de depuração e avançar linha a linha com Step Over (F10), observando o painel de variáveis.
ENTENDA

Um acumulador que não acumula

O gabarito esperado é <b>385.0</b> (110 + 220 + 55). O código devolve muito menos. O erro não é de sintaxe — o programa roda sem reclamar. É um <b>erro semântico</b>: faz algo diferente do que deveria.

O código defeituosodef processar_fechamento_caixa(vendas_do_dia):total_acumulado = 0.0taxa_imposto = 0.10for valor_venda in vendas_do_dia:imposto = valor_venda * taxa_impostototal_acumulado = valor_venda + imposto ← ERROreturn total_acumulado vendas_teste = [100.0, 200.0, 50.0] → esperado: 385.0O programa executa sem erro nenhum. O problema aparece só no valor devolvido.
ciclo 1 — venda 100.0 V total = 110.0 falso ↓ ciclo 2 — venda 200.0 V total = 220.0 · perdeu os 110 falso ↓ ciclo 3 — venda 50.0 V total = 55.0 · é isso queretorna A cada volta o total é REESCRITO, não somado. Por isso sobra apenas a última venda processada.
= Atribuição joga fora o que havia e guardao novo valor += Acumulação soma o novo valor ao que jáestava guardado Um caractere de diferença — e a função devolve 55.0 em vez de 385.0.

Como preencher este relatório

  1. 1Leia o cenário e observe os diagramas — eles mostram o conceito que a sua resposta precisa usar.
  2. 2Preencha a identificação do grupo no Passo 0.
  3. 3Responda um passo de cada vez, na ordem. Cada passo traz uma dica de como pensar logo abaixo do enunciado.
  4. 4Confira o checklist no final — ele verifica se não ficou nada faltando.
  5. 5Clique em Gerar PDF da resposta. Na janela de impressão, escolha Destino: Salvar como PDF e salve como NOME_TURMA_S18A3.
  6. 6Envie esse PDF no AVA. O que vocês digitarem fica salvo neste computador sozinho — dá para fechar a página e voltar depois.
PASSO 0

Identificação

Estes dados montam a capa e a folha de rosto do relatório em PDF.

PROCEDIMENTOS

Depurem o código

A ordem é importante: análise de mesa primeiro, ferramentas depois.

1
Análise de mesa — antes de acionar qualquer ferramenta.
Como pensar: Com as vendas 100.0, 200.0 e 50.0, e a regra de somar o valor mais 10% de imposto em um acumulador: qual deveria ser o montante ao fim de cada ciclo?
CicloVendaImpostoTotal acumulado esperado
100.0
200.0
50.0
2
Executem o código e registrem o sintoma.
Como pensar: Rodem normalmente primeiro, só para ver o tamanho do problema. Compare com o gabarito de 385.0.
3
Coloquem o breakpoint e iniciem o modo de depuração.
Como pensar: Cliquem na margem esquerda, ao lado da linha for valor_venda in vendas_do_dia: — surge um marcador vermelho. Depois iniciem pelo Debug, não pela execução normal. Observem o painel de variáveis.
4
Avancem com Step Over (F10) e rastreiem o que realmente acontece.
Como pensar: Acompanhem o painel de variáveis a cada volta. No 1º ciclo o cálculo parece correto — é no 2º que a anomalia aparece.
Ciclovalor_vendaimpostototal_acumulado depois
5
Causa raiz: o que aconteceu com os valores das vendas anteriores?
Como pensar: Comparem as duas tabelas — a do teste mental e a do depurador. A partir do 2º ciclo elas divergem. Por quê?
6
Mitiguem o defeito e revalidem.
Como pensar: Interrompam o depurador, corrijam a expressão de acumulação e rodem de novo. O teste só está resolvido quando o resultado for exatamente 385.0.
7
Registro — Rastreamento lógico.
Como pensar: Expliquem detalhadamente por que o = no lugar do += fez a função devolver apenas o processamento da última venda da lista.
8
Registro — Eficiência analítica.
Como pensar: Por que breakpoint + step over é estruturalmente superior a espalhar print() pelo código? Pensem no que acontece com os prints depois que o bug é resolvido.
9
Registro — Maturidade profissional.
Como pensar: O teste unitário acusou que havia erro (gabarito errado); a depuração localizou a linha. Como essa dupla garante desenvolvimento profissional e à prova de regressões?
CONFIRA

Checklist antes de gerar o PDF

Ao clicar em “Gerar PDF da resposta”, o navegador monta o relatório completo no padrão de roteiro de aula prática — com capa, folha de rosto, objetivos, procedimentos, as respostas do grupo e as referências. Na janela de impressão, escolha Destino: Salvar como PDF, salve como NOME_TURMA_S18A3 e envie no AVA.
AVALIAÇÃO

Como esta atividade será avaliada

CritérioPontos
Análise de mesa correta, antes do uso das ferramentas2,0
Uso do depurador: breakpoint, inspeção e step over com rastreamento registrado3,0
Identificação da causa raiz e correção validada em 385.03,0
Qualidade das três respostas do registro2,0
REFERÊNCIAS

De onde veio o conteúdo desta aula

Curso Técnico em Desenvolvimento de Sistemas
Roteiro de Aula Prática
Lógica e Linguagem de Programação
Técnicas básicas de depuração
São Paulo - SP
2026
Roteiro de Aula Prática
Técnicas básicas de depuração
Roteiro de Aula Prática apresentado ao componente curricular Lógica e Linguagem de Programação, como requisito parcial de avaliação do 3º bimestre.
São Paulo - SP
2026

Roteiro de Aula Prática

Nome da disciplina: LÓGICA E LINGUAGEM DE PROGRAMAÇÃO
Unidade: 3 – Qualidade de software: depuração e testes
Aula: 3 – Breakpoint, inspeção de variáveis e step over
Base teórica: Capítulos 20, 32 a 35 e 43 — repetição, funções e leitura de erros

Objetivos

  • Desenvolver raciocínio investigativo para rastrear falhas semânticas em algoritmos modulares.
  • Usar pontos de interrupção (breakpoints) e inspeção de variáveis em tempo de execução.
  • Avançar a execução passo a passo (step over) para localizar a linha exata do defeito.
  • Diferenciar atribuição simples (=) de acumulação (+=) dentro de um laço.

Solução digital

Depurador da IDE (VS Code, PyCharm).

Esta atividade usa o modo debug da IDE — não a execução normal. Vocês vão marcar um breakpoint na margem esquerda do editor, rodar em modo de depuração e avançar linha a linha com Step Over (F10), observando o painel de variáveis.

Procedimento / Atividade

Atividade proposta: O relatório financeiro corrompido. Vocês são da equipe de engenharia de uma rede de lojas. A função processar_fechamento_caixa deve receber as vendas do dia, calcular 10% de imposto sobre cada uma e devolver o faturamento total acumulado. Um teste unitário foi escrito — e está falhando: o faturamento retornado é muito inferior ao esperado. A missão é depurar o código e encontrar o defeito.

Procedimentos para a realização da atividade

Checklist de entrega

Critérios de avaliação

CritérioPontos
Análise de mesa correta, antes do uso das ferramentas2,0
Uso do depurador: breakpoint, inspeção e step over com rastreamento registrado3,0
Identificação da causa raiz e correção validada em 385.03,0
Qualidade das três respostas do registro2,0

Referências

  • SEDUC-SP — Roteiro de Atividade Prática SISANO1C1B3S18A3AP: “Técnicas básicas de depuração”. Situação fictícia produzida pela SEDUC-SP.
  • Apostila da disciplina — Capítulos 20 (while), 32 a 35 (funções) e 43 (aprendendo a ler erros).
  • Documentação do Visual Studio Code — Python debugging: breakpoints e step over.
salva sozinho neste computador