técnicas de teste caixa-aberta para a validação de software teste estrutural de software

Post on 17-Apr-2015

127 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Técnicas de teste caixa-aberta para a validação de software

Teste Estrutural de SoftwareTeste Estrutural de Software

Teste Estrutural (caixa aberta)Teste Estrutural (caixa aberta)

DADOS RESULTADOS

• teste de caminho• dependente de código• grafo de fluxo de controle• critérios de cobertura

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

Grafo de Fluxo de ControleGrafo de Fluxo de Controle

• Nodo = comandos seqüenciais

• Arco = desvio de controle

1

2 3

4

1

2

Estrutura deDecisão (if-then-else)

Bloco Seqüencial Estrutura deRepetição (while-do)

1

1

2

3

4 5

6

7

89

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;

11

12

13

10

Critérios de CoberturaCritérios de Cobertura

• Objetivos• identificar caminhos => determinar dados

• sinalizar conclusão dos testes

• tipos de Critérios• fluxo de controle

• fluxo de dados

Critérios de CoberturaCrité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

Critérios de Fluxo de ControleCrité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

Ordenação dos Critérios

Todos-caminhos

Todos-potenciais-du-caminhos

Todos-du-caminhos Todos-potenciais-usos

Todos-usos

Todos-c-usos/alguns-p-usos Todos-p-usos/alguns-c-usos

Todos-p-usosTodas-defs

Todos-arcos

Todos-nodos

Exemplo - Exemplo - satisfação de critérios de satisfação de critérios de cobertura de controlecobertura 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)

1

2

3

4

(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

1

2

3

4

5

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: 3-4 3-5 7-8 7-9

1

2

3

4 5

6

7

8

9

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)

Definição e Uso de Variáveis

variável é definida quando um valor é atribuído a elaread (X);

X := 5;

X := X + 2; (uso e definição de X)

uso computacional da variável Xwrite (X) ;

Y := X + 2 ;

uso em predicado (em condição) da variávelif X = 4 then . . .

while X < 1 do . . .

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

1 23 - 4

def usox yp z

y3 - 5

456

7 - 8

7 - 98

10-1110-12

11

ypp

yy

zpp

p z p z xyy

z z

p:=-y

1

2

3

4 5

6

7

89

11

12

13

10

p:=0z:=0

(x,y)

y>0 y<=0

p:=yz:=1

p<>0

p:=p-1z:=z*x

y<0y>=0

p=0

z:=1/z

Critérios de Fluxo de DadosCrité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)

Subcaminho livre de definição

1

2

3

4 5

6

7

8 9

x, y definição

y>0 y<=0 uso

z:=z*x uso

p=-y

1

2

3

4 5

6

7

89

11

12

13

10

p:=0z:=0

(x,y)

y>0 y<=0

p=yz:=1

P<>0

p:=p-1z:=z*x

y<0y>=0

p=0

z:=1/z

11

12

10y<0

y>=0

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

Subcaminhos selecionados

11

12

10

1

2

3

4 5

6

7

89

x, y

y>0 y<=0

z:=z*x

y<0y>=0

p=y4

6

7

89

p<>0p=0

p

5

6

7

89

p<>0 p=0

p=-y

p11

10

z:=z*x

8

7

89

z:=z*x

z:=1/z

z

Subcaminhos que satisfazem criterio todos-usos

1-2-3-4 1-2-3-5

1-2-3-4-6-7-8

1-2-3-4-6-7-9-10-11

1-2-3-4-6-7-9-10-12

4-6-7-8 4-6-7-9

5-6-7-8 5-6-7-9

6-7-8 6-7-9-10-11

8-7-8 8-9-10-11

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.

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-4-6-7-8 4-6-7-8 8-7-8

[1, 2, 3, 5, 6, 7, 8,7, 9, 10, 11, 12, 13]1-2-3-5 5-6-7-8

[1, 2, 3, 5, 6, 7, 9, 10, 12, 13]5-6-7-9

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

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

top related