A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teste Estrutural de Software

Apresentações semelhantes


Apresentação em tema: "Teste Estrutural de Software"— Transcrição da apresentação:

1 Teste Estrutural de Software
Técnicas de teste caixa-aberta para a validação de software

2 Teste Estrutural (caixa aberta)
DADOS RESULTADOS teste de caminho dependente de código grafo de fluxo de controle critérios de cobertura

3 Atividades no Teste Estrutural
Representar o programa através de grafo de fluxo Escolher critério de cobertura Selecionar caminhos (grafo de fluxo) Determinar dados de teste Determinar resultados esperados Instrumentar código fonte Executar o programa com os dados Comparar resultados computados c/esperados Analisar a cobertura de caminhos 24

4 Grafo de Fluxo de Controle
Nodo = comandos seqüenciais Arco = desvio de controle 1 1 1 2 3 2 4 Bloco Seqüencial Estrutura de Repetição (while-do) Estrutura de Decisão (if-then-else) 30

5

6 Critérios de Cobertura
Objetivos identificar caminhos => determinar dados sinalizar conclusão dos testes tipos de Critérios fluxo de controle fluxo de dados 31

7 Critérios de Cobertura
Cobertura de fluxo de controle: todos-nodos (comandos) todos-arcos (desvios) todos-caminhos Cobertura de fluxo de dados: todas-definições todos-usos todos-du-caminhos todos-potenciais-usos 32

8 Critérios de Fluxo de Controle
Todos-arcos Todos os arcos (ou decisões) devem ser executados Todos-nodos Todos os nodos (ou comandos) devem ser executados Todos-caminhos Todos os caminhos possíveis do grafo de fluxo devem ser executados Problema: grafos com ciclos representam número infinito de caminhos

9 Ordenação dos Critérios
38

10 Exemplo - satisfação de critérios de cobertura de controle
todos-nodos: (1,2,3,4) todos-arcos: (1,2,3,2,3,4) todos-caminhos: . . . (1,2,3,2,3,...,2,3,4) 1 2 3 4 34

11 cobertura de nodo cobertura de arco cobertura de caminho (1,2,3,4,5)
ou (1,2,3,2,4,5) e cobertura de nodo cobertura de arco cobertura de caminho (1,2,4,5) (1,2,3,4,5) (1,2,3,2,4,5) (1,2,3,2,3,4,5) (1,2,3,2,(3,2),...,4,5) (1,2,3,(2,3),...,4,5) . . . passando uma única vez pelo laço

12 Para realizar uma cobertura de desvio:
1 localizar todos os nodos de decisão listar todos os arcos que saem de nodos de decisão selecionar dados que forcem a execução de todos os arcos listados Exemplo arcos: 2 3 4 5 6 7 8 9

13 Critérios de Cobertura baseado em Análise de Fluxo de Dados
grafo de fluxo + tabela definição-uso de variáveis definição de variáveis: em leitura, como parâmetro de entrada lado esquerdo da atribuição, uso de variáveis: referência em expressão (aritmética ou lógica)

14 Definição e Uso de Variáveis
variável é definida quando um valor é atribuído a ela read (X); X := 5; X := X + 2; (uso e definição de X) uso computacional da variável X write (X) ; Y := X + 2 ; uso em predicado (em condição) da variável if X = 4 then while X < 1 do 36

15 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;

16 Critérios de Fluxo de Dados
Todas-definições Todas as definições de variáveis devem ser executadas pelo menos uma vez, até um uso das destas (considerando subcaminhos livres de redefinição) Todos-usos Todos os usos de variáveis devem ser executados pelo menos uma vez, a partir de definições destas variáveis (considerando subcaminhos livres de redefinição) 37

17 Subcaminho livre de definição
(x,y) 1 p:=0 z:=0 2 x, y definição 1 y>0 3 y<=0 4 5 p=-y 2 p=y 6 z:=1 y<=0 uso 3 y>0 4 5 7 p=0 P<>0 6 8 9 p:=p-1 z:=z*x 7 11 12 13 10 y<0 8 9 y>=0 z:=z*x uso 11 12 10 z:=1/z y<0 y>=0

18 Determinação de subcaminhos que satisfazem a critério de cobertura
construir o grafo de fluxo construir a tabela def-uso determinar subcaminhos que iniciam com definição e terminam com uso de variável

19 Subcaminhos selecionados
1 2 3 4 5 6 7 8 9 x, y y>0 y<=0 z:=z*x p 11 10 z:=z*x 8 7 9 z:=1/z z 4 p=y 6 7 p=0 p<>0 8 9 5 6 7 8 9 p<>0 p=0 p=-y p 11 12 10 y<0 y>=0

20 Subcaminhos que satisfazem criterio todos-usos

21 Execução dos testes e Avaliação de Cobertura
1) executar o programa com um conjunto de dados arbitrariamente escolhido 2) comparar os caminhos executados com os subcaminhos selecionados pelo critério 3) caso todos os subcaminhos tenham sido exercitados, o critério foi satisfeito 4)caso contrário, escolher novo conjunto de dados e voltar ao passo 1.

22 Exemplo Dados (5, 2) (2,-1) (4, 0) Caminho executado e subcaminhos exercitados [1, 2, 3, 4, 6, 7, 8, 7, 8, 7, 9, 10, 12, 13] [1, 2, 3, 5, 6, 7, 8,7, 9, 10, 11, 12, 13] [1, 2, 3, 5, 6, 7, 9, 10, 12, 13]

23 Caminhos Impraticáveis
caminhos do grafo, porém não são caminhos lógicos do programa 1, 2, 3, 4, 6, 7, 9, 10, 11 caso existam subcaminhos para os quais não for possivel encontrar dados que os exercite, provavelmente são caminhos impraticáveis

24 Problemas com o Teste Estrutural
número de subcaminhos muito elevado determinar dados que exercitem caminhos selecionados pelo critério de cobertura impossível, para caminhos impraticáveis estratégia de determinação de dados para caminhos: Execução Simbólica


Carregar ppt "Teste Estrutural de Software"

Apresentações semelhantes


Anúncios Google