• Nenhum resultado encontrado

ListEx06 Lencioni

N/A
N/A
Protected

Academic year: 2021

Share "ListEx06 Lencioni"

Copied!
35
0
0

Texto

(1)

Aluno: Luiz Rubens Lencioni ([email protected]) Data: 27/05/2011

ListEx06

1- Dado o programa SOLVER3GRAU desenvolvido na Linguagem C++, faça o Grafo de Fluxo de Dados

2- Dado o Grafo de Fluxo de Dados, faça o Teste Estático para cada variável do programa 3- Assumindo que o Fluxo de Controle está correto, faça o Teste Dinâmico para valores de entrada a2, a1 e a0 representativos, utilizando o Compilador Turbo C++ ou equivalente 4- Comente os Resultados do Teste.

(2)

1- Grafo de Fluxo de Dados

Para realizar o Grafo de Fluxo de Dados utilizou-se o Grafo de Fluxo de Controle apresentado na ListEx05. A tabela abaixo representa a divisão do programa em blocos e verifica cada variável definida (d), utilizada (u) ou destruída (k) em cada bloco de comandos.

Bloco de comandos Linha(s) Variáveis definidas(d), usadas(u) ou destruídas(k)

1 2 a 32

d: a2, a1, a0, q, r, d, z1f, h, s1f, s2f, z21f, z22f d: dc, rx, s1, s2, z1, z2, z3, i, rrr, rrm

d: a2x, a1x, a0x, y1c, y2c, y3c u: a2, a1, a0, q, r, d

2 33 u: d 3 34 u: d 4 35 u: d 5 36 u: d 6 37 u: d 7 38 a 40 u: d 8 41 a 72 u: d, r, dc, rx, rrr, rrm, s1, s2, a2x, a2, i, z1, z2, z3 u: a1x, a0x, a0, a1, a2, y1c, y2c, y3c

9 73 a 78 u: h, q, r, d 10 79 a 82 u: h, s1f 11 83 a 84 u: s1f 12 85 a 86 u: q 13 87 a 91 u: g, s2f 14 92 u: g, s2f 15 93 a 114 u: z1f, z21f, z22f, s1f, s2f u: a2, a1, a0, z1, z2, z3 u: y1c, y2c, y3c

16 115

k: a2, a1, a0, q, r, d, z1f, h, q, s1f, s2f, z21f, z22f k: dc, rx, s1, s2, z1, z2, z3, i, rrr, rrm

k: a2x, a1x, a0x, y1c, y2c, y3c Tabela 1 - Divisão do Programa em Blocos de Comandos

(3)
(4)

A figura a seguir ilustra o Grafo de Fluxo de Dados, de acordo com os blocos definido pela Tabela 1:

(5)

2 – Teste estático de cada variável do programa

2.1 – Variável “d”

-7- O padrão d-u-k, aos pares, para a variável “z”, é:

~ d Correto, caso normal d u Correto, caso normal

(6)

2.2 – Variável “a2”

O padrão d-u-k, aos pares, para a variável “a2”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(7)

2.3 – Variável “a1”

O padrão d-u-k, aos pares, para a variável “a1”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(8)

2.4 – Variável “a0”

O padrão d-u-k, aos pares, para a variável “a0”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(9)

2.5 – Variável “q”

O padrão d-u-k, aos pares, para a variável “q”, é:

~ d Correto, caso normal d u Correto, caso normal u u Correto, caso normal u k Correto, caso normal

(10)

2.6 – Variável “r”

O padrão d-u-k, aos pares, para a variável “r”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(11)

2.7 – Variável “z1f”

O padrão d-u-k, aos pares, para a variável “z1f”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(12)

2.8 – Variável “h”

O padrão d-u-k, aos pares, para a variável “h”, é:

~ d Correto, caso normal d u Correto, caso normal u u Correto, caso normal u k Correto, caso normal

(13)

2.9 – Variável “s1f”

O padrão d-u-k, aos pares, para a variável “s1f”, é:

~ d Correto, caso normal d u Correto, caso normal u u Correto, caso normal u k Correto, caso normal

(14)

2.10 – Variável “s2f”

O padrão d-u-k, aos pares, para a variável “s2f”, é:

~ d Correto, caso normal d u Correto, caso normal u u Correto, caso normal u k Correto, caso normal

(15)

2.11 – Variável “z21f”

O padrão d-u-k, aos pares, para a variável “z21f”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(16)

2.12 – Variável “z22f”

O padrão d-u-k, aos pares, para a variável “z22f”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(17)

2.13 – Variável “dc”

O padrão d-u-k, aos pares, para a variável “dc”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(18)

2.14 – Variável “rx”

O padrão d-u-k, aos pares, para a variável “rx”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(19)

2.15 – Variável “s1”

O padrão d-u-k, aos pares, para a variável “s1”, é:

~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(20)

2.16 – Variável “s2”

O padrão d-u-k, aos pares, para a variável “s2”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(21)

2.17 – Variável “z1”

O padrão d-u-k, aos pares, para a variável “z1”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(22)

2.18 – Variável “z2”

O padrão d-u-k, aos pares, para a variável “z2”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(23)

2.19 – Variável “z3”

O padrão d-u-k, aos pares, para a variável “z3”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(24)

2.20 – Variável “i”

O padrão d-u-k, aos pares, para a variável “i”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(25)

2.21 – Variável “rrr”

O padrão d-u-k, aos pares, para a variável “rrr”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(26)

2.22 – Variável “rrm”

O padrão d-u-k, aos pares, para a variável “rrm”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(27)

2.23 – Variável “a2x”

O padrão d-u-k, aos pares, para a variável “a2x”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(28)

2.24 – Variável “a1x”

O padrão d-u-k, aos pares, para a variável “a1x”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(29)

2.25 – Variável “a0x”

O padrão d-u-k, aos pares, para a variável “a0x”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(30)

2.26 – Variável “y1c”

O padrão d-u-k, aos pares, para a variável “y1c”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(31)

2.27 – Variável “y2c”

O padrão d-u-k, aos pares, para a variável “y2c”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(32)

2.28 – Variável “y3c”

O padrão d-u-k, aos pares, para a variável “y3c”, é: ~ d Correto, caso normal d u Correto, caso normal u k Correto, caso normal

(33)

3 – Teste Dinâmico para valores de entrada a2, a1, a0 representativos

De acordo com [1], deve ser criado ao menos um caso de teste para cobrir cada par “define-use”, de cada variável do programa.

Primeiramente mapeou-se os caminhos possíveis dentro do programa: Caminho (Path) A 1-2-3-5-7-8-16 B 1-3-4-5-7-9-11-12-13-15-16 C 1-3-4-5-7-9-11-12-14-15-16 D 1-3-4-5-7-9-10-12-13-15-16 E 1-3-4-5-7-9-10-12-14-15-16 F 1-3-5-6-7-9-11-12-13-15-16 G 1-3-5-6-7-9-11-12-14-15-16 H 1-3-5-6-7-9-10-12-13-15-16 I 1-3-5-6-7-9-10-12-14-15-16

Desta forma criou-se um Caso de Teste para cada variável, conforme abaixo:

CT Variável Caminho para cobrir cada (d-u) a0 a1 a2

CT-1 d A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-2 d C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-3 d H 1-3-5-6-7-9-10-12-13-15-16 9.0 10.0 -7.0 CT-4 a2 A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-5 a2 C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-6 a1 A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-7 a1 C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-8 a0 A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-9 a0 C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-10 q C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-11 r A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-12 r C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-13 z1f C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-14 h H 1-3-5-6-7-9-10-12-13-15-16 9.0 10.0 -7.0 CT-15 s1f H 1-3-5-6-7-9-10-12-13-15-16 9.0 10.0 -7.0 CT-16 s1f C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-17 s2f H 1-3-5-6-7-9-10-12-13-15-16 9.0 10.0 -7.0 CT-18 s2f C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-19 z21f C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-20 z22f C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-21 dc A 1-2-3-5-7-8-16 0.0 1.0 10.0

(34)

CT-25 z1 A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-26 z1 C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-27 z2 A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-28 z2 C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-29 z3 A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-30 z3 C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-31 i A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-32 rrr A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-33 rrm A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-34 a2x A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-35 a1x A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-36 a0x A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-37 y1c A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-38 y1c C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-39 y2c A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-40 y2c C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0 CT-41 y3c A 1-2-3-5-7-8-16 0.0 1.0 10.0 CT-42 y3c C 1-3-4-5-7-9-11-12-14-15-16 0.0 0.0 9.0

4 – Comentários

Verificou-se que o teste estático e o teste dinâmico são análises complementares da Técnica de Fluxo de Dados. Devido a grande quantidade de variáveis, mesmo quando aplicada em um pequeno programa como o deste exercício, esta Técnica necessita de um grande esforço para ser aplicada manualmente. Desta forma pode-se observar que uma ferramenta automática para realizar a Técnica de Teste de Fluxo de Dados é essencial para programas maiores. O número de casos de teste poderia ter sido reduzido considerando-se que mais de uma variável pode ser testada em um mesmo caso de teste. Entretanto procurou-se seguir a seqüência para o teste dinâmico descrita em [1].

No exercício proposto não foi encontrado nenhum problema utilizando-se a Técnica de Teste de Fluxo de Dados.

(35)

Referências:

[1] COPELAND, L. “A Practitioner’s Guide to Software Test Design”. Norwood, MA, USA: Artech House Publishers, 2007

[2] DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. “Introdução ao Teste de Software”. Rio de Janeiro, RJ: Editora Campus, 2007

Referências

Documentos relacionados

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...

Então Ulisses, que todos diziam ser o mais manhoso dos homens, pensou, pensou e teve uma ideia: construir um enorme, um gigantesco cavalo de pau, assente num estrado com rodas para

Entre o roseiral e o parque, num lugar sombrio, solitário e verde, havia um pequeno jardim rodeado de árvores altíssimas que o cobriam com os seus ramos.. No

vassourar – varrer... Que género de texto acabaste de ler? Justifica a tua resposta. Transcreve alguns versos que ilustrem a azáfama da vassoura. A dona da casa está descontente com

E, a certa altura, ela murmurava para o seu prostrado e inconsciente guerreiro: «não te deixarei morrer, David Crockett!» Não sei porquê, esta frase e esta cena viajaram comigo

1- Indica com P, se a frase estiver na voz passiva e com A se estiver na ativa. Depois, passa-as para a outra forma. a) Vimos um cisne moribundo.. Assinala com um X o

1- Indica com P, se a frase estiver na voz passiva e com A se estiver na ativa. Depois, passa-as para a outra forma.. Assinala com um X o retângulo correspondente.. Derivada