Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRodrigo Ferreiro Alterado mais de 9 anos atrás
1
Teste Simbólico Execução do programa com dados simbólicos ao invés de dados reais Técnica de poio à seleção de dados para o teste estrutural
3
Teste Simbólico valores simbólicos são atribuídos às variáveis de entrada do programa processador simbólico interpreta as instruções do programa resultados: valores de variáveis são fórmulas simbólicas predicado do caminho: conjunção das condições do caminho executado
4
Execução Simbólica A, B - vars de entrada S - var de saída
5
Teste Simbólico promove o entendimento do programa
regra de formação dos valores das variáveis ex: procedure Potência para y = -3, x = 1/(1*x*x*x) determinar o intervalo de valores das variáveis de entrada que fazem o programa executar determinado caminho para o caminho y > 0 para o caminho y <= 0
6
procedure potencia(x,y:integer; var z:real); var p: integer; begin
p=-y 1 2 3 4 5 6 7 8 9 11 12 13 10 p:=0 z:=0 (x,y) y>0 y<=0 p=y z:=1 p<>0 p:=p-1 z:=z*x y<0 y>=0 p=0 z:=1/z procedure potencia(x,y:integer; var z:real); var p: integer; begin p:=0; z:=0; if y>0 then p:=y else p:=-y; z:=1; while p<>0 do begin p:=p-1; z:=z*x; end; if y<0 then z:=1/z; end;
7
Predicado de Caminho sistema de inequações a < b & 2 a <= 0
quando resolvido determina intervalo de dados que leva à execução do caminho problemas: sistema de equações não lineares
8
Processadores Envolvidos na Execução Simbólica
Interpretador Simbólico Simplificador de Expressões ex: y > 0 & & y = 0 & Solucionador de Sistemas de Equações Provador de Teoremas se x<=y & x=y então x=y se x<0 & x>0 então “caminho impraticável” 7 p=0 p<>0 8 p:=p-1 z:=z*x 9 y<0
9
Teste Simbólico dirigido por Caminho
atribuir valores simbólicos para variáveis de entrada; especificar caminho a ser executado; interpretar simbólicamente as instruções do programa; resolver o predicado (sistema de inequações); escolher dados dentro do intervalo resultante; executar o programa com os dados reais; comparar resultados computados com resultados esperados.
10
Caminho: 1-2-3-5-6-7-8-7-9-10-11-12-13
(x,y) 1 Caminho: PC : y<=0 & -y<>0 & -y-1=0 & y<0 Resolvendo o predicado: y = -1 Execução real: x= 3 y=-1 esperado z=1/3 p:=0 z:=0 2 y>0 3 y<=0 p=-y 4 5 p=y 6 z:=1 7 p=0 p<>0 8 9 p:=p-1 z:=z*x y<0 10 y>=0 11 z:=1/z 12 13
11
Teste Estrutural + Simbólico
procedimentos envolvidos análise estática do programa grafo de fluxo + tabela def-uso seleção de caminhos (critério de cobertura) execução do programa com dados (método funcional) análise de cobertura caso existam caminhos não cobertos interpretação simbólica => predicados de caminho identificação de caminhos impraticáveis resolução de predicados, determinação de dados comparação de resultados e de caminhos
12
procedure potencia(x,y:integer; var z:real); var p: integer; begin
p=-y 1 2 3 4 5 6 7 8 9 11 12 13 10 p:=0 z:=0 (x,y) y>0 y<=0 p=y z:=1 p°0 p:=p-1 z:=z*x y<0 y>=0 p=0 z:=1/z procedure potencia(x,y:integer; var z:real); var p: integer; begin Tabela Def -Uso 1 2 3 - 4 def uso x y p z y 3 - 5 4 5 6 7 - 8 7 - 9 8 10-11 10-12 11 p z p z x p:=0; z:=0; if y>0 then p:=y else p:=-y; z:=1; while p<>0 do begin p:=p-1; z:=z*x; end; if y<0 then z:=1/z; end;
13
Subcaminhos que satisfazem o critério todos-usos
p=-y 1 2 3 4 5 6 7 8 9 11 12 13 10 p:=0 z:=0 (x,y) y>0 y<=0 p=y z:=1 p<>0 p:=p-1 z:=z*x y<0 y>=0 p=0 z:=1/z * * * * * caminhos impraticáveis
14
Subcaminhos impraticáveis
p=-y 1 2 3 4 5 6 7 8 9 11 12 13 10 p:=0 z:=0 (x,y) y>0 y<=0 p=y z:=1 p<>0 p:=p-1 z:=z*x y<0 y>=0 p=0 z:=1/z Subcaminhos impraticáveis * pc: y>0 & y=0 & y<0 * pc: y>0 & y=0 & y>0 * pc: y>0 & y=0 * pc: y=0 & y<0
15
Execução Simbólica de Caminho
(x,y) 1 2 y>0 3 y<=0 Caminho: (1,2,3,5,6,7,8,7,9,10,11,12,13) (1,2,3,5) (y <= 0) (1,2,3,5,6,7,8) (y <= 0) & (- y <> 0) (1,2,3,5,6,7,8,7,8) (y <= 0) & (- y <> 0) & (- y - 1<> 0) (1,2,3,5,6,7,8,7,9, 10,11,12,13) (y <= 0) & (- y<> 0) & (- y - 1 = 0) & ( y < 0) 4 5 p=-y 6 7 p=0 p<>0 8 9 p:=p-1 z:=z*x 10 y<0 z:=1/z y>=0 11 12 13
16
Execução Simbólica problemas:
predicados longos tem que ser simplificados sistemas de equações não lineares predicados de caminhos impraticáveis variáveis indexadas e dinâmicas processadores não triviais interpretador simbólico simplificador solucionador de sistemas, provador de teoremas
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.