apresentação do powerpointjeiks.net/wp-content/uploads/2013/05/slides_ltp_06.pdfteste de mesa -...
TRANSCRIPT
Técnicas de verificação de algoritmos
Um tipo de teste de algoritmo, denominado Teste de Mesa (ou Teste Exaustivo) pode ser feito através de uma simulação da execução do mesmo.
São dados valores para os dados de entrada e vai-se preenchendo uma tabela na qual são colocadas todas as variáveis e constantes do algoritmo.
Teste de mesa
Segue-se o fluxo de execução como se estivesse executando o algoritmo em um computador imaginário.
Teste de mesa
A cada comando de atribuição ou cálculo de expressão o valor das variáveis deve ser atualizado. Ao final do teste pode-se ter as seguintes situações:
o resultado esperado foi alcançado; ou
foram detectados erros nos comandos; ou
foram detectados erros no fluxo de execução - erro nas estruturas de controle.
Teste de mesa
Procure fazer testes relevantes como, por exemplo, aqueles que verificam casos extremos e casos de exceções. Com o teste é possível identificar em que ponto o algoritmo está falhando e fazer a correção.
Algoritmos errados podem gerar resultados errados ao serem executados por um computador ou mesmo não gerar nada se o computador detectar erros graves na sequência de operações.
Teste de mesa - Exemplo
algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início
leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 }
MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média }
fim.
Teste de mesa - Exemplo
O teste de mesa desse algoritmo é dado da seguinte maneira considerando que serão fornecidos como entrada os valores 9.6, 5.7, 6.8 e 8.9 para as variáveis P1, P2, P3 e P4 respectivamente :
Passo NUM_NOT MEDIA P1 P2 P3 P4
0 4 - - - - -
Teste de mesa - Exemplo
Passo 1:
algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início
leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 }
MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média }
fim.
Passo NUM_NOT MEDIA P1 P2 P3 P4
0 4 - - - - -
1 - 9.6 - - -
Teste de mesa - Exemplo
Passo 2:
Passo NUM_NOT MEDIA P1 P2 P3 P4
0 4 - - - - -
1 - 9.6 - - -
2 - 5.7 - -
algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início
leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 }
MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média }
fim.
Teste de mesa - Exemplo
Passo 3:
Passo NUM_NOT MEDIA P1 P2 P3 P4
0 4 - - - - -
1 - 9.6 - - -
2 - 5.7 - -
3 - 6.8 -
algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início
leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 }
MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média }
fim.
Teste de mesa - Exemplo
Passo 4:
Passo NUM_NOT MEDIA P1 P2 P3 P4
0 4 - - - - -
1 - 9.6 - - -
2 - 5.7 - -
3 - 6.8 -
4 - 8.9
algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início
leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 }
MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média }
fim.
Teste de mesa - Exemplo
Passo 5:
Passo NUM_NOT MEDIA P1 P2 P3 P4
0 4 - - - - -
1 - 9.6 - - -
2 - 5.7 - -
3 - 6.8 -
4 - 8.9
5 7.75
algoritmo CALCULA_MEDIA; const NUM_NOT = 4; { constante com o número de notas } var P1, P2, P3, P4, MEDIA: real; { variáveis com as notas e a média } início
leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } leia (P3); { leitura da nota da prova 3 } leia (P4); { leitura da nota da prova 4 }
MEDIA (P1 + P2 + P3 + p4) / NUM_NOT; { cálculo da média } escreva (MEDIA); { mostrar a média }
fim.
Teste de mesa - Exemplo
Inicialmente, os valores das variáveis são indefinidos, ou seja, não podemos afirmar quais os valores armazenados nestas variáveis.
Por convenção, diz-se que os valores dessas variáveis são “lixos”.
No passo 0 o valor da constante já é definido, porém os valores das variáveis são lixos.
No passo 1 do algoritmo, a variável P1 é “lida” e as demais continuam com lixo.
Teste de mesa - Exemplo
No fim da execução do algoritmo podemos ver claramente os valores armazenados em cada variável. O valor da constante, devido a sua definição, não é alterado em momento algum.
Passo NUM_NOT MEDIA P1 P2 P3 P4
0 4 - - - - -
1 - 9.6 - - -
2 - 5.7 - -
3 - 6.8 -
4 -
5 4 7.75 9.6 5.7 6.8 8.9
Referências
BORLAND. Turbo Pascal, versão 7.0. [S.L.] : Borland International, Inc.,1992.
DEITEL, P. J.; DEITEL, H.M.; Java: How to program, 9th ed, Ed. Prentice-Hall, 2011. ISBN: 978-0-13-257566-9.
FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Algoritmos estruturados. 3ed, Ed. LTC, 1999. ISBN: 9788521611806.
FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Pascal estruturado. 3ed, Ed. LTC, 1999. ISBN: 9788521611745.
GUIMARÃES, A. M.; LAGES, N. A. C.; Algoritmos e estruturas de dados. 1ed, Ed. LTC, 1994. ISBN: 9788521603788.
GRIFFITHS,D., BARRY,P., Head First Programming – A learner's guide to programming using the Python language, O´Reilly, 2009, 406p.
http://wwwusers.rdc.puc-rio.br/rmano/processo.html
Velloso, F. C.; Informática: Conceitos Básicos. 7ed, Ed. Campus, 2004. ISBN: 9788535215366.