Teste de mesa

  1. Definição
  2. Exercícios

Definição

Teste de mesa é uma simulação da execução de um programa de forma manual, geralmente feita no papel. Não há regras rígidas para criar um teste de mesa, mas geralmente ele é feito de uma de duas formas. Considere o pseudocódigo abaixo:

inteiro a, b, soma, diferenca
escreva("Digite dois números inteiros\n")
leia(a, b)
soma = a + b
diferenca = a - b
escreva("A soma dos dois números é ", soma, "\n")
escreva("A diferença dos dois números é ", diferenca, "\n")

Esse algoritmo simplesmente calcula a soma e a diferença entre dois números e imprime ambas. Baseado nele, eu vou fazer uma tabela onde eu vou fazer um teste de mesa. Como eu falei, o teste de mesa geralmente é feito de duas formas. Primeiramente, vou fazer um teste seguindo a primeira forma. Nessa primeira forma, coloca-se as variáveis que se deseja acompanhar o valor em colunas de uma tabela. Então, preenche-se os valores das variáveis para simular a execução do programa. Cada linha corresponde a uma execução.

a b soma diferenca
4 3 7 1
20 10 30 10
10 15 25 -5

Vamos ver agora a segunda forma. Ela também tem uma coluna para cada variável, mas inclui o número da linha na primeira coluna e o valor que cada variável tem após a execução dela. Como cada linha corresponde a uma linha do programa, a tabela inteira corresponde a uma execução. Tabela da segunda forma:

Linha a b soma diferenca
4 20 10 30
5 20 10 30 10

A primeira forma deve ser utilizada quando você quer simular mais de 1 execução ou quando você acha desnecessário expressar os valores das variáveis em diferentes pontos do algoritmo.

Testes de mesa são mais usados para propósitos didáticos, ou quando não se dispõe de um computador enquanto se está criando um algoritmo e deseja-se testar o algoritmo, geralmente com valores de input diferentes. São usados também quando se tem dificuldade para entender o funcionamento de um algoritmo. Então, fazendo o teste de mesa, fica mais fácil entender o que o algoritmo faz.

Exercícios

Vou resolver alguns exercícios de teste de mesa. Eu recomendo fortemente que você faça os exercícios.

Exercício 1

Dado o algoritmo abaixo, faça um teste de mesa seguindo aquela forma onde cada linha representa uma execução. Faça 3 execuções.

inteiro diasVividos, idade
escreva("Digite o número de dias vividos\n")
leia(diasVividos)
idade = diasVividos / 365
escreva("A idade é ", idade, "\n")

Resolução:

diasVividos idade
30 0
400 1
3650 10

Exercício 2

Agora, faça um teste de mesa pro algoritmo do exercício anterior, só que usando a segunda forma, onde a primeira coluna representa uma linha do programa e as demais colunas representam valores que as variáveis tem depois da execução da linha. Use as linhas 3 e 4.

Resolução:

Linha diasVividos idade
3 400
4 400 1

Exercícios bem fáceis, né? O objetivo foi apenas treinar o conceito, fazer com que você fique mais familiarizado com ele.