You are on page 1of 7

Capítulo 3 - Método Estrutural

(Método da CAIXA BRANCA)

Tópicos: (técnicas)
3.1
3.2
3.3
3.4

Introdução
Testes de cobertura de instruções
Testes de cobertura de loops
Testes de cobertura de caminhos

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

3.2 Caixa Branca

Método Estrutural (Teste Caixa Branca)

2/14

Os casos de teste, neste método, são escolhidos de modo que:



todas as decisões sejam executadas;
todos os "loops" sejam executados, nos seus limites
de especificação;
todos os caminhos sejam considerados;
todas as estruturas de dados sejam utilizadas.

Motivação:
Os erros de software ocorrem com mais freqüência nos
casos especiais, normalmente nos casos eventuais e pouco
executados.

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

Testes Essenciais

1

3.2a Instruções

Método Estrutural (Teste Caixa Branca)

3/14

São três as principais abordagens técnicas :
a) Testes de cobertura de instruções.
b) Testes de cobertura de loops.
c) Testes de cobertura de caminhos.
a) Testes de cobertura de instruções.
Técnica elementar para determinação geral de casos de teste.
Examina o comportamento de um módulo através do teste
isolado de cada linha de código sob o efeito das operações
elementares de "seleção ou repetição (loop)", não considerando
os testes da operação completa com estes componentes.

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

3.2a Instruções

Exemplo de testes de cobertura de instruções
Possibilidades:
1) X falso X = 5
2) X verdadeiro X = 1
3) Y verdadeiro Y = 9
4) Y falso Y = 20

a
F

4/14

V
X=1
X = X+30

X = X+10

X = X+20
Y = Y+1

Y < 10
V
a

F

Obs.: Devido a combinações impróprias de hipóteses, a técnica pode sugerir
casos de teste para situações impossíveis de ocorrer. Estes casos não devem
ser selecionados. A utilização do "bom senso" recusa a seleção destes casos.

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

Testes Essenciais

2

3.2b Loops

Método Estrutural (Teste Caixa Branca)

5/14

b) Testes de cobertura de loops
Técnica para determinação de casos de teste para
repetições/loops. Examina o comportamento de um módulo
através de testes sob o efeito da associação combinada, ou não,
das operações de "repetição (loop)".
Tipos de loops:
i) Simples

ii) Aninhados

iii)Seqüenciais

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

3.2b Loops

Método Estrutural (Teste Caixa Branca)

6/14

iv) Loops não estruturados

Devem ser convertidos em loops estruturados.

A técnica:
Loops simples: ( número máximo de iterações = n )
1)
2)
3)
4)
5)

não executar o loop
apenas uma execução
duas execuções
m execuções (m < n)
execuções para as situações: n - 1; n; n +1;

total de casos de teste: 6 + 1 (não executar)
Obs.: Esta técnica usa o artifício de indução matemática
para produzir os casos de teste.

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

Testes Essenciais

3

3.2b Loops

Método Estrutural (Teste Caixa Branca)

7/14

Loops aninhados:
Estratégia sugerida:
i.
Iniciar pelo laço (loop) mais interno e operar os
demais loops com os valores mínimos;
ii. Elaborar os casos de teste de loop simples;
iii. Trabalhar sucessivamente do loop mais interno para
o loop externo seguinte;

Loops seqüenciais:
Estratégia sugerida:
i.
Quando os loops são independentes, ou seja, a
expressão de controle do 2 loop não é afetada pelo
primeiro, então usar a abordagem para elaborar
casos de teste para loop simples;
ii. Quando os loops não são independentes, então
elaborar casos de teste da mesma forma que para
loops aninhados;
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

3.2b Loops

Exemplo de testes de cobertura de loops

8/14

Exemplo para loops aninhados:
enquanto
T < 30

Principal
enquanto
R < 42

X

Módulo A

Y

Módulo B

• O loop interno (condição T < 30) implica em 7 ( 6+1 ) casos de teste.
• O loop externo (condição R < 42) implica em 7 ( 6+1 ) casos de teste.
• O conjunto implica em:
1. 7 x 7 = 49 casos de teste, se os loops forem dependentes;
2. 6+ 6+1 = 13 casos de teste, se os loops forem independentes.
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

Testes Essenciais

4

3.2c Caminhos

Método Estrutural (Teste Caixa Branca)

9/14

c) Testes de cobertura de caminhos.
Técnica para definição de casos de teste com base nos critérios
anteriormente definidos, de modo que, o conjunto de casos de
teste escolhido seja relativamente pequeno (minimizado).
Os casos de teste são produzidos com base em um "grafo de
fluxo de controle".
Grafo de Fluxo de Controle:
a) Características principais: 

Possuem como elementos básicos: o nó e o ramo. 

Cada nó representa um ou mais comandos
seqüenciais do módulo. 

Cada ramo inicia e termina em um nó. 

As áreas delimitadas pelos ramos são denominadas
regiões.

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

3.2c Caminhos

Método Estrutural (Teste Caixa Branca)

Grafo de Fluxo de Controle:

Seqüência

Decisão

Repeat
Until

Case

10/14

b) Notação:
Ramo

c) Determinação da complexidade de
um grafo: 

pelo número de regiões do
grafo ou; 

pela expressão:
C = NR - NN + 2
NR = número de ramos
NN = número de nós

Do
While

A complexidade de um grafo,
fornecida pela expressão, é
equivalente ao grau de
complexidade, ou a dificuldade
de construção, do módulo que
gerou o grafo.

...

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

Testes Essenciais

5

3.2c Caminhos

Exemplo de testes de cobertura de caminhos

11/14

1. Diagrama do programa e grafo associado:

Principal
X

enquanto
R < 42

enquanto
T < 30
Y

1
5

4

3
2

Módulo A

Módulo B

C = complexidade = número de regiões = 5 = 8 - 5 + 2 = 5
⇒ o que recomenda 5 casos de teste para atendimento da técnica
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

3.2c Caminhos

Exemplo de testes de cobertura de caminhos

O fluxograma do módulo:
11

12/14

O grafo associado:
z

y
7

x

6

9

5

10
8

4

3
2

1

complexidade = número de regiões = 4
c = 12 - 10 + 2 = 4
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

Testes Essenciais

6

3.2 Caixa Branca

Exemplo do planejamento de testes combinados

13/14

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

3.2 Caixa Branca

Exemplo de testes combinados

14/14

a
F

V
X=1
X = X+30

X = X+10

X = X+20
Y = Y+1

Y < 10
V
a

F

• Aplicação da Cobertura de Caminhos:
• Aplicação da combinação das
técnicas:

C=3

Casos de Teste
entrada
1) X =1 , Y = 20;
2) X =21, Y = 20;
3) X =1, Y = 9;

saida
X =11, Y = 20
X =41, Y = 20
X =41, Y = 10

Combinando as técnicas
anteriores
⇒ O número mínimo de casos
de teste segundo o método da
caixa branca é de 13 casos de
teste. Serão dois grupos de
casos para teste de loop
simples, então 2 x 6 + 1= 13.

UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira

Testes Essenciais

7