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

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

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

Apresentações semelhantes


Apresentação em tema: "Técnicas de teste caixa-aberta para a validação de software Teste Estrutural de Software."— Transcrição da apresentação:

1 Técnicas de teste caixa-aberta para a validação de software Teste Estrutural 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

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

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

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

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

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,4) (1,2,3,2,3,4)... (1,2,3,2,3,...,2,3,4)

11 (1,2,3,4,5) ou (1,2,3,2,4,5) (1,2,3,4,5) e (1,2,3,2,4,5) 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: ¥ 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:

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...

15 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; Tabela Def -Uso defuso x y p z y y p p y y z p p p zp z x y y zz p:=-y p:=0 z:=0 (x,y) y>0y<=0 p:=y z:=1 p <> 0 p:=p-1 z:=z*x y<0 y>=0 p=0 z:=1/z

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)

17 Subcaminho livre de definição x, y definição y>0 y<=0 uso z:=z*x uso p=-y p:=0 z:=0 (x,y) y>0y<=0 p=y z:=1 P <> 0 p:=p-1 z:=z*x y<0 y>=0 p=0 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 x, y y>0 y<=0 z:=z*x y<0 y>=0 p=y p <> 0 p=0 p p <> 0 p=0 p=-y p z:=z*x z:=1/z z

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 "Técnicas de teste caixa-aberta para a validação de software Teste Estrutural de Software."

Apresentações semelhantes


Anúncios Google