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.

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.
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
- Escolha um caso: anote todos os valores de entrada.
- Defina o resultado esperado: use a especificação, não o próprio algoritmo.
- Comece no primeiro passo: não pule instruções “óbvias”.
- Registre cada mudança: atualize valores apenas quando a instrução mandar.
- Avalie decisões: marque se cada condição é verdadeira ou falsa e siga somente o caminho correspondente.
- Registre a saída: copie exatamente o que o algoritmo produz.
- Compare: esperado e obtido coincidem?
- 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.
| Passo | Item atual | Condição | Maior depois do passo |
|---|---|---|---|
| Inicialização | 4 | — | 4 |
| Comparação 1 | 9 | 9 > 4 é verdadeira | 9 |
| Comparação 2 | 2 | 2 > 9 é falsa | 9 |
| Comparação 3 | 7 | 7 > 9 é falsa | 9 |
A saída obtida é 9, igual à esperada.
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.
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:
- a especificação está clara?
- a entrada satisfaz as condições previstas?
- a expressão usa os valores certos?
- a decisão escolheu o caminho correto?
- alguma atualização aconteceu cedo, tarde ou não aconteceu?
- 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
- CSTA — Revised PK–12 Computer Science Standards, Draft 3.0. Acesso em 9 set. 2026.
- CSTA — Standards Progression Chart. Acesso em 9 set. 2026.
- K–12 Computer Science Framework — Statements by Grade Band. Acesso em 9 set. 2026.
- Harvard CS50 AP — Algorithms Practice. Acesso em 9 set. 2026.
- Harvard CS50 — Bugs and Debugging. Acesso em 9 set. 2026.