Você está na página 1de 24

Teste

de Unidade
Centro de Inform-ca - Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br Slides originais elaborados por Alexandre Vasconcelos
O autor permite o uso e a modicao dos slides para ns did-cos

[if977] Engenharia de SoNware - SI - CIn - UFPE

Teste de unidade
Inves-gar a qualidade de componentes individuais (ex: mtodos, classes) Obje-vo:
Testar comportamento (especicao) e estrutura interna (lgica e uxo de dados)

[if977] Engenharia de SoNware - SI - CIn - UFPE

Estratgia para Teste de unidade


Driver

Mdulo a ser testado

Driver de teste programa que executa o mdulo a ser testado usando os Interface dados do caso de Estrutura de dados local Condies limite teste e verica o Caminhos independentes Caminhos de tratamento de erros veredicto
Casos de teste

Este ser o propsito de uso do JUnit

Resultados

[if977] Engenharia de SoNware - SI - CIn - UFPE

Teste de Caixa Preta


Casos de teste so gerados usando somente a especicao Vantagens:
Procedimento de teste no inuenciado pela implementao Resultados dos testes podem ser avaliados por pessoas sem conhecimento da linguagem de programao Robusto em relao a mudanas na implementao (Abordagem XP...)
[if977] Engenharia de SoNware - SI - CIn - UFPE 5

Teste de Caixa Preta


Deve-se analisar a relao entre a pr e a ps- condio Tentar cobrir todas as combinaes lgicas existentes entre essas partes Dada a relao pr => ps, tem-se
pr=true => ps=true pr=false => exceo

[if977] Engenharia de SoNware - SI - CIn - UFPE

Seleo de Dados de Teste


H vrias tcnicas para seleo de dados de teste

Par-cionamento Fronteiras Pares ortogonais Etc.

[if977] Engenharia de SoNware - SI - CIn - UFPE

Par:cionamento

Determinando par-es

Selecionando representantes

[if977] Engenharia de SoNware - SI - CIn - UFPE

Fronteiras
Estais-cas indicam que h uma maior susce-bilidade a erros nas fronteiras de par-es (limites dos -pos) Tanto em dados vlidos quanto invlidos
Assim, para x > 0, no bastaria usar qualquer x > 0 (par-cionamento) Mas sim x = 1 (vlido no limite) e x = 0 (invlido no limite)

[if977] Engenharia de SoNware - SI - CIn - UFPE

Fronteiras
A tcnica da seleo de dados pelas fronteiras muito indicada para inves-gar bom funcionamento de
Arrays Vetores Algoritmos de busca/ordenao Etc.

[if977] Engenharia de SoNware - SI - CIn - UFPE

10

Teste de Caixa Branca


Casos de teste so gerados a par-r da implementao No se pode avaliar o grau de cobertura de uma funcionalidade pelo teste de caixa preta A idia gerar dados de teste que permitam exercitar algum critrio em relao ao cdigo (cobertura)

[if977] Engenharia de SoNware - SI - CIn - UFPE

11

Grafo de uxo de controle


n = bloco de comandos seqenciais aresta ou ramo = transferncia de controle

1 1 2 3 4 2 3

1 2

...
n

2 3

bloco seqencial

if-then-else
seleo

case

while

repeat-until

repetio
12

[if977] Engenharia de SoNware - SI - CIn - UFPE

Grafo de uxo de controle: Exemplo


Clculo de xy 1. read x, y; 2. if y < 0 3. then p := 0 - y 4. else p := y; 5. z := 1.0; 6. while p 0 do 7. begin z := z * x; p := p - 1; end; 8. if y < 0 9. then z := 1 / z; 10. write z; end;
1 y<0 2 3 5 p0 6 7 y<0 9
[if977] Engenharia de SoNware - SI - CIn - UFPE

y0 4

8 y0 10

13

Critrios de cobertura
Tipos
Cobertura de instrues Cobertura de decises Cobertura de condies Cobertura de caminhos

[if977] Engenharia de SoNware - SI - CIn - UFPE

14

Cobertura de instrues
1 y<0 2 3 5 p0 6 7 y<0 9 10
[if977] Engenharia de SoNware - SI - CIn - UFPE 15

y0 4

Critrio: cada instruo deve ser executada pelo menos 1 vez ns predicados dados (4, 0)

{1,2,3,5,6,7,6, 8,9,10} x, y < 0 (4, -1) {1,2,4,5,6,8,10} x, y = 0

8 y0

Cobertura de instrues
read x; y:= 0; 1 2 x mpar

x par 3

Satisfaz o critrio de cobertura de instrues, mas note que o ramo 2->4 no exercitado ns {1,2,3,4,5} {1,2,3,4,6} predicados x par negativo x par positivo dados -2 2

x<0 y:= x; Write y; 5

x0 6

[if977] Engenharia de SoNware - SI - CIn - UFPE

16

Cobertura de decises
1 y<0 2 3 5 p0 6 7 y<0 9 10 8 y0
Critrio: cada expresso lgica em estruturas de controle avaliada pelo menos uma vez para verdadeiro e falso (cada ramo deve ser percorrido pelo menos 1 vez). Geralmente satisfaz cobertura de instrues desde que toda instruo esteja no mesmo caminho da cobertura de deciso.

y0 4

ramos
{(1,2), (2,3), (3,5), (5,6)

predicados dados
x, y < 0 x, y = 0 (4, -1) (4, 0)

(6,7), (7,6), (6,8), (8,9), (9,10)} {(1,2), (2,4), (4,5), (5,6), (6,7), (7,6), (6,8), (8, 10)}

[if977] Engenharia de SoNware - SI - CIn - UFPE

17

Cobertura de decises
read x; y:= 0; 1 2 x mpar
ns {(1,2)(2,3),(3,4),(4,5)} predicados x par negativo x par positivo dados -2 3

x par 3

x<0 5

{(1,2),(2,4),(4,6)}

x0 6 write y;
[if977] Engenharia de SoNware - SI - CIn - UFPE 18

Cobertura de decises
c
1. if a >= 0 and a <= 200 2. then m := 1 3. else m := 3 4. Dep. em a...
ramos {(1,2), (2,4)} {(1,3), (3,4)} dados a=5 a = -5
[if977] Engenharia de SoNware - SI - CIn - UFPE 19

c
2

c
3

O Critrio sa-sfeito mas a condio a<=200 no testada para valores >200

Cobertura de decises/condies
c
1. if a >= 0 and a <= 200 2. then m := 1 3. else m := 3 4. Dep. em a...
ramos {(1,1A), (1A, 2), (2,4)} {(1,1A), (1A,3), (3,4)} {(1,3), (3,4)} dados a=5 a = 500 a = -5 1

a0
1A

a<0 a > 200


3 4

a 200
2

Critrio: cada condio em uma deciso assume pelo menos uma vez todos os possveis resultados
20

[if977] Engenharia de SoNware - SI - CIn - UFPE

Teste de Abstraes de Dados


Testar os mtodos de maneira conjugada Testes devem explorar propriedades esperadas para a composio de mtodos Seqncias de testes devem ser originadas tanto pelo teste de caixa preta quanto o de caixa branca

[if977] Engenharia de SoNware - SI - CIn - UFPE

21

Exemplo
Suponha uma classe com mtodos inserir, remover, consultar, etc. Ento, seqncias como:
consultar(x) -> inserir(x) -> remover(x) inserir(x) -> inserir(x) inserir(x) -> consultar(x) remover(x) -> consultar(x)

[if977] Engenharia de SoNware - SI - CIn - UFPE

22

Automao de Testes Integrada


Testar essencial como referencial de qualidade Falhas humanas so comuns Realizar todos os testes, associados a artefatos modicados, imprescindvel

[if977] Engenharia de SoNware - SI - CIn - UFPE

23

Bibliograa
Liskov, B. et al. Program Development in Java
Captulo 10

SOMMERVILLE, I. Engenharia de SoNware. 9. Ed. So Paulo: Pearson Educa-on, 2011


Captulo 23

[if977] Engenharia de SoNware - SI - CIn - UFPE

24