SkillsTecnológicas
Menu
Conteúdo da trilha

Conteúdo 6 de 6

Como testar um algoritmo manualmente

Acompanhe instruções e valores passo a passo para encontrar falhas antes da implementação.

Publicado em 9 de setembro de 202616 min de leituraSkills Tecnológicas

Um algoritmo e seus estados são acompanhados passo a passo e verificados com uma lupa

Testar manualmente é simular a execução do algoritmo

Testar um algoritmo manualmente significa escolher entradas, prever a saída correta e executar cada instrução no papel, registrando como os valores e decisões mudam. Ao comparar o resultado obtido com o esperado, você encontra regras incompletas antes de depender de código.

Essa prática também é chamada de simulação, rastreamento ou teste de mesa. Ela verifica casos específicos; não constitui uma prova de que o algoritmo funciona para todas as entradas possíveis.

Processo de escolher um caso, prever saída, executar passos, registrar estado, comparar e refinar
Prever antes de executar evita ajustar a expectativa para coincidir com um resultado incorreto.

O que preparar antes do teste

Você precisa de quatro elementos:

  • o algoritmo em uma representação clara;
  • as entradas do caso escolhido;
  • a saída esperada calculada independentemente;
  • uma tabela para registrar passos, condições, valores e saídas.

Se o resultado esperado não puder ser definido, retorne ao problema. A aula de entrada, processamento e saída ajuda a explicitar dados, regras e resultados.

Como fazer um teste de mesa passo a passo

  1. Escolha um caso: anote todos os valores de entrada.
  2. Defina o resultado esperado: use a especificação, não o próprio algoritmo.
  3. Comece no primeiro passo: não pule instruções “óbvias”.
  4. Registre cada mudança: atualize valores apenas quando a instrução mandar.
  5. Avalie decisões: marque se cada condição é verdadeira ou falsa e siga somente o caminho correspondente.
  6. Registre a saída: copie exatamente o que o algoritmo produz.
  7. Compare: esperado e obtido coincidem?
  8. Localize a primeira divergência: revise a regra e repita os casos afetados.

Executar mentalmente rápido demais costuma esconder o mesmo erro que queremos encontrar. A tabela obriga o raciocínio a permanecer visível.

Exemplo: encontrar o maior valor

Considere este algoritmo para uma lista não vazia:

maior = primeiro item

para cada item restante
  se item > maior
    maior = item

informe maior

Para a entrada [4, 9, 2, 7], esperamos a saída 9.

PassoItem atualCondiçãoMaior depois do passo
Inicialização44
Comparação 199 > 4 é verdadeira9
Comparação 222 > 9 é falsa9
Comparação 377 > 9 é falsa9

A saída obtida é 9, igual à esperada.

Tabela acompanha os itens quatro, nove, dois e sete e mantém nove como maior valor final
O rastreamento mostra quando o estado muda e quando permanece igual.

Escolha casos que possam revelar erros

Repetir várias entradas parecidas oferece pouca confiança. Selecione casos por uma razão:

  • comum: representa o uso esperado;
  • fronteira: fica exatamente no limite de uma regra;
  • mínimo: usa a menor entrada válida;
  • repetição ou empate: verifica valores iguais;
  • ordem diferente: evita depender acidentalmente de dados ordenados;
  • inválido: confirma rejeição e mensagem adequadas.

No algoritmo do maior valor, teste [5], [3, 3, 3], [-8, -2, -5] e uma lista vazia. O último caso expõe uma condição importante: o algoritmo pressupõe uma lista não vazia. A solução deve documentar essa pré-condição ou tratar a ausência de itens.

Casos comum, de fronteira, mínimo e inválido apontam para um algoritmo em verificação
Um conjunto diverso explora caminhos diferentes e revela suposições escondidas.

Como testar decisões e repetições

Para uma decisão, escolha entradas que tornem a condição verdadeira, falsa e exatamente igual ao limite. Se aprovação exige média maior ou igual a 6, teste valores abaixo, acima e iguais a 6.

Para uma repetição, registre também o contador ou a condição de parada. Verifique:

  • estado antes da primeira repetição;
  • mudanças em cada volta;
  • momento em que a condição deixa de ser satisfeita;
  • estado final;
  • possibilidade de nenhuma execução ou de execução infinita.

Essas estruturas serão aprofundadas nos módulos próprios. Neste momento, o objetivo é aprender a acompanhar o fluxo sem inventar etapas.

Encontrou uma divergência? Faça o diagnóstico

Quando obtido e esperado forem diferentes, identifique a primeira linha em que o estado se afasta do correto. Pergunte:

  1. a especificação está clara?
  2. a entrada satisfaz as condições previstas?
  3. a expressão usa os valores certos?
  4. a decisão escolheu o caminho correto?
  5. alguma atualização aconteceu cedo, tarde ou não aconteceu?
  6. a condição de parada está correta?

Corrija a causa, não apenas o exemplo. Depois execute novamente o caso que falhou e os anteriores. Uma alteração pode resolver uma situação e quebrar outra.

Teste manual, teste automatizado e prova são diferentes

O teste manual oferece visibilidade e é excelente para algoritmos pequenos. Testes automatizados executam casos de modo repetível e escalam melhor depois da implementação. Uma prova de correção usa raciocínio formal para demonstrar propriedades gerais.

Essas abordagens se complementam. Passar nos casos escolhidos aumenta a confiança, mas não demonstra sozinho que o algoritmo está correto para qualquer entrada.

Erros comuns

Calcular o esperado com o algoritmo testado

Se ambos usam a mesma regra errada, os resultados coincidem. Derive o esperado da especificação ou de um método independente.

Alterar mais de uma coisa por vez

Isso dificulta saber qual mudança resolveu o problema. Corrija uma causa, repita os testes e registre o resultado.

Testar apenas o caminho feliz

Limites, empates, valores negativos e entradas ausentes costumam revelar suposições invisíveis.

Pular passos na tabela

O teste de mesa perde valor quando reproduz a execução de forma aproximada. Registre cada alteração relevante.

Pratique com um desconto progressivo

Teste um algoritmo que aplica desconto de 10% para compras a partir de R$ 100 e rejeita valores negativos. Crie casos para R$ 80, R$ 100, R$ 200 e R$ -1.

Para cada caso, anote entrada, saída esperada, resultado da condição, cálculo realizado e saída obtida. Se houver divergência, marque o primeiro passo incorreto e proponha uma única correção.

O que você deve guardar

O teste manual transforma a execução em evidência observável: entradas escolhidas, saída prevista, passos, estados, decisões e resultado obtido. Bons casos exploram comportamentos diferentes, e uma falha deve levar à correção seguida de novo teste.

Consulte o catálogo da trilha de Lógica de Programação. O próximo módulo começa comparando linguagem natural, pseudocódigo e fluxogramas para representar algoritmos.

Referências