• Nenhum resultado encontrado

Respostas Exercício: Cobertura Teste Caixa Branca

N/A
N/A
Protected

Academic year: 2021

Share "Respostas Exercício: Cobertura Teste Caixa Branca"

Copied!
17
0
0

Texto

(1)

Respostas

Exercício: Cobertura Teste Caixa Branca

Alessandro Garcia

LES/DI/PUC-Rio

Junho 2016

(2)

Exercício 1

a) Fluxograma

1. #include <stdio.h> 2.

3. int comparar() {

4. int num1, num2, num3, maior = 0; 5. printf ("Entre 3 numeros positivos");

6. scanf ("%d %d %d", &num1, &num2, &num3); 7. if ((num1 > num2) && (num1 > num3)) {

8. maior = num1; 9. return maior; 10. } else {

11. if (num2 == num3) {

12. printf ("Nao existe maior ");

13. if (num3 == num1) { printf ("... e todos sao iguais!"); } 15. return maior;

16. }

17. if ((num2 > num3) && (num2 != num 1)) { 18. maior = num2;

19. return maior; 20. }

21. if ((num3 > num2) && (num3 != num1)) { 22. maior = num3;

23. return maior; 24. }

25. printf ("Nao existe maior "); 26. return maior; 25. } 26. }

A

B

C

D

E

F

G

I

J

K

L

M

N

H

Note que existem dois

comandos (13 e 14), com

(3)

Critérios de cobertura: instruções

Cobertura de

instruções

(vértices)

Cada

instrução é executada

pelo menos

uma vez no

conjunto de todos os casos de

teste

rotulam-se as instruções e

criam-se os casos de teste

cada caso percorre pelo

menos uma instrução ainda

não percorrida

até que todas as instruções

tenham sido percorridas

i = 4 ; j = 8

A B C D

i = 4 ; j = 6

A B C E

i = ( i + j ) / 2 ; j = 10 ; i = 10 ; if ( ( i < 10 ) && ( j < 10 )) if ( i > 5 ) S N S N

D

E

A

B

C

(4)

Exercício 1a

a) Fluxograma

(5)
(6)

Exercício 1a

a) As entradas dos cinco casos de teste abaixo representam

um conjunto suficiente e mínimo para satisfazer o critério de

cobertura de instruções? Justifique.

num1 = 3, num2 = 2, num3 = 2

num1 = 3, num2 = 4, num3 = 3

num1 = 3, num2 = 4, num3 = 5

num1 = 4, num2 = 5, num3 = 5

num1 = 5, num2 = 5, num3 = 5

(7)

Exercício 1a

a) As entradas dos cinco casos de teste abaixo representam

um conjunto suficiente e mínimo para satisfazer o critério de

cobertura de instruções? Justifique.

num1 = 3, num2 = 2, num3 = 2 -> A B C

num1 = 3, num2 = 4, num3 = 3 -> A B D E J K

num1 = 3, num2 = 4, num3 = 5 -> A B D E J L M

num1 = 4, num2 = 5, num3 = 5 -> A B D E F G I

num1 = 5, num2 = 5, num3 = 5 -> A B D E F G H I

Não, pois nenhum dos casos de teste resulta

na execução de N.

(8)

Exercício 1a

A B C

A B D E J K

A B D E J L M

A B D E F G I

A B D E F G H I

x

x

x

x

falta: A B D E J L N

exemplo:

num1 = 5, num2 = 5

, num3 = 4

caso onde não

existe maior

(9)

Exercício 1a

A B C

A B D E J K

A B D E J L M

A B D E F G I

A B D E F G H I

x

x

x

x

precisa dos dois?

(10)

Exercício 1a

A B C

A B D E J K

A B D E J L M

A B D E F G I

A B D E F G H I

x

x

x

x

bastaria o segundo

(em cobertura de instruções)

ou seja, o conjunto suficiente e mínimo

seria:

num1 = 3, num2 = 2, num3 = 2 -> A B C

num1 = 3, num2 = 4, num3 = 3 -> A B D E J K

num1 = 3, num2 = 4, num3 = 5 -> A B D E J L M

num1 = 4, num2 = 5, num3 = 5 -> A B D E F G I

num1 = 5, num2 = 5, num3 = 5 -> A B D E F G H I

(11)

Exercício 1b

b) Os três caminhos (arcos de execução) abaixo descrevem

casos de teste abstratos para a função comparar(). Note

que os rótulos (letras) estão associados com instruções e/ou

blocos de código da função. Complete o conjunto de

caminhos abaixo de forma a obter um conjunto mínimo de

casos de teste para satisfazer o padrão de cobertura de

arestas. Qual o número mínimo de casos de teste que foi

necessário para satisfazer tal padrão?

Inicial: ABC, ABDEFGI, ABDEJK

(12)

Exercício 1b

x

x

arestas já

exercitadas

A B C

A B D E F G I

A B D E J K

Note que faltam

pelo menos 3

caminhos para

exercitar as arestas

faltantes

(13)

Exercício 1b

A B C

A B D E F G I

A B D E J K

Note que faltam

pelo menos 3

caminhos para

exercitar as arestas

faltantes

x

x

arestas já

exercitadas

(14)

Exercício 1b

b) Os três caminhos (arcos de execução) abaixo descrevem

casos de teste abstratos para a função comparar(). Note

que os rótulos (letras) estão associados com instruções e/ou

blocos de código da função. Complete o conjunto de

caminhos abaixo de forma a obter um conjunto mínimo de

casos de teste para satisfazer o padrão de cobertura de

arestas. Qual o número mínimo de casos de teste que foi

necessário para satisfazer tal padrão?

Inicial: ABC, ABDEFGI, ABDEJK

ABDEFGHI, ABDEJLM, ABDEJLN, totalizando 6 casos

de teste

(15)

Exercício 1

c) Apresente a expressão regular geradora de caminhos que

permita identificar os casos de teste necessários para

satisfação do critério de cobertura de caminhos. Use os

rótulos (letras) associados acima ao código da função

comparar().

AB ( C| (DE ( (FG(HI|I))) | (J(K|(L(M|N) ))))))

Qual seria o caminho mais longo e o mais curto que

poderiam ser gerados a partir desta expressão?

(16)

D)

Exercício 1

1. #include <stdio.h> 2.

3. int comparar() {

4. int num1, num2, num3, maior = 0; 5. printf ("Entre 3 numeros positivos");

6. scanf ("%d %d %d", &num1, &num2, &num3); 7. if ((num1 > num2) && (num1 > num3)) {

8. maior = num1; 9. return maior; 10. } else {

11. if (num2 == num3) {

12. printf ("Nao existe maior ");

13. if (num3 == num1) { printf ("... e todos sao iguais!"); } 15. return maior;

16. }

17. if ((num2 > num3) && (num2 != num 1)) { 18. maior = num2;

19. return maior; 20. }

21. if ((num3 > num2) && (num3 != num1)) { 22. maior = num3;

23. return maior; 24. }

25. printf ("Nao existe maior "); 26. return maior; 25. } 26. }

A

B

C

D

E

F

G

I

J

K

L

M

N

H

locais onde

poderiam ser

inseridos os

contadores

(de arestas)

antes do

return

no bloco

if

(17)

Respostas

Exercício: Cobertura Teste Caixa Branca

Alessandro Garcia

LES/DI/PUC-Rio

Junho 2016

Referências

Documentos relacionados

UM ESTUDO DA HISTÓRIA AFRICANA ANTIGA REVELA UMA ANTERIOR DEFINIÇÃO AFRICANA DO SISTEMA DE MELANINA HUMANA COMO UM [INTEIRO] SANTO CORPO PRETO [HOLY BLACK BODY

115 você usou o verbo no plural e na negativa, pois você sabe que eles estão localizados na Cinelândia e não em

10° Aplicação de fórmulas: P9 e B13 para tosse ; B13 e B38 para asma ; BP6 e E30 para as regras dolorosas ; ID3 e C6 para transpiração noturna ; B54 e R1 para hipertensão,

De acordo com a lenda, Durga foi criada como uma deusa guerreira para combater um demônio búfalo, chamado Mahish Asur. Esse demo era capaz de mudar da forma humana para a

No Amapá as comunidades tradicionais conquistaram a força política para a criação pelo governo estadual do Programa de Desenvolvimento Sustentável do Amapá (PDSA), um programa

A finalidade do “Documento de Arquitetura de Software - DAS” é definir um modelo arquitetural para ser aplicado ao desenvolvimento dos jogos do Desafio SEBRAE, bem como

principais experiências profissionais durante os últimos 5 anos, indicando: nome e setor de atividade da empresa, cargo e se a empresa integra (i) o grupo econômico do

• A Revolução Industrial corresponde ao processo de industrialização que teve início na segunda metade do.. século XVIII no