teste de unidade
TRANSCRIPT
-
8/2/2019 Teste de Unidade
1/24
Teste de Unidade
Centro de Inform-ca Universidade Federal de PernambucoSistemas de Informao
Vinicius Cardoso [email protected]
Slides originais elaborados por Alexandre Vasconcelos
O autor permite o uso e a modicao dosslides para ns did-cos
-
8/2/2019 Teste de Unidade
2/24
2[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
3/24
3
Teste de unidade
Inves-gar a qualidade de componentesindividuais (ex: mtodos, classes)
Obje-vo: Testar comportamento (especicao) e estrutura
interna (lgica e uxo de dados)
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
4/24
4
Estratgia para Teste de unidade
Driver de teste programa que executao mdulo a sertestado usando osdados do caso deteste e verica overedicto
Este ser o propsitode uso do JUnit
Driver
Mdulo aser testado
Casos de teste
InterfaceEstrutura de dados localCondies limiteCaminhos independentesCaminhos de tratamento de erros
Resultados
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
5/24
5
Teste de Caixa Preta
Casos de teste so gerados usando somente aespecicao
Vantagens:
Procedimento de teste no inuenciado pelaimplementao 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
-
8/2/2019 Teste de Unidade
6/24
6
Teste de Caixa Preta
Deve se analisar a relao entre a pr e a pscondio
Tentar cobrir todas as combinaes lgicasexistentes entre essas partes
Dada a relao pr => ps, tem se pr=true => ps=true
pr=false => exceo
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
7/247
Seleo de Dados de Teste
H vrias tcnicas para seleo de dados deteste Par-cionamento
Fronteiras Pares ortogonais Etc.{
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
8/248
Par:cionamento
Determinando par-es
Selecionandorepresentantes
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
9/249
Fronteiras
Esta s-cas indicam que h uma maiorsusce-bilidade a erros nas fronteiras depar-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 (invlidolimite)
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
10/2410
Fronteiras
A tcnica da seleo de dados pelas fronteiras muito indicada para inves-gar bomfuncionamento de
Arrays Vetores Algoritmos de busca/ordenao
Etc.
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
11/2411
Teste de Caixa Branca
Casos de teste so gerados a par-r daimplementao
o se pode avaliar o grau de cobertura de
uma funcionalidade pelo teste de caixa preta A idia gerar dados de teste que permitamexercitar algum critrio em relao ao cdigo(cobertura)
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
12/24
Grafo de uxo de controle
12[if977] Engenharia de SoNware SI CIn UFPE
n = bloco de comandos seqenciaisaresta ou ramo = transferncia de controle
11
2 3
4
1
2 3 m
n
...
1
2
3
1
2
3blocoseqencial
seleo
if-then-else caserepetio
while repeat-until
-
8/2/2019 Teste de Unidade
13/2413
Grafo de uxo de controleExemplo
Clculo de xy1. read x, y;2. if y < 03. then p := 0 y4. else p := y;
5. z := 1.0;6. while p 0 do7. begin
z := z * x; p := p 1;end;
8. if y < 09. then z := 1 / z;
10. write z;end;
1
2
3 4
5
6
7
8
9
10
y < 0 y 0
p 0
y < 0y 0
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
14/2414
Critrios de cobertura
Tipos Cobertura de instrues Cobertura de decises
Cobertura de condies Cobertura de caminhos
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
15/2415
1
2
3 4
5
6
7
8
9
10
y < 0 y 0
p 0
y < 0y 0
Critrio: cada instruo deve ser executada pelo menos 1 vez
ns predicados dados
{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 (4, 0)
[if977] Engenharia de SoNware SI CIn UFPE
Cobertura de instrues
-
8/2/2019 Teste de Unidade
16/24
Cobertura de instrues
16[if977] Engenharia de SoNware SI CIn UFPE
1
2
3
4
5 6
x par
x mpar
Satisfaz o critrio de coberturade instrues, mas note que oramo 2->4 no exercitado
ns predicados dados
{1,2,3,4,5} x par negativo -2
{1,2,3,4,6} x par positivo 2
read x;y:= 0;
y:= x;Write y;
x 0x < 0
-
8/2/2019 Teste de Unidade
17/2417
1
2
3 4
5
6
7
8
9
10
y < 0 y 0
p 0
y < 0y 0
Critrio: cada expresso lgica em estruturasde controle avaliada pelo menos uma vez paraverdadeiro e falso (cada ramo deve ser percorrido pelo menos 1 vez). Geralmentesatisfaz cobertura de instrues desde que toda
instruo esteja no mesmo caminho dacobertura de deciso.
ramos predicados dados
{(1,2), (2,3), (3,5), (5,6) x, y < 0 (4, -1)
(6,7), (7,6), (6,8), (8,9), (9,10)}
{(1,2), (2,4), (4,5), (5,6), x, y = 0 (4, 0)
(6,7), (7,6), (6,8), (8, 10)}
[if977] Engenharia de SoNware SI CIn UFPE
Cobertura de decises
-
8/2/2019 Teste de Unidade
18/24
Cobertura de decises
18[if977] Engenharia de SoNware SI CIn UFPE
1
2
3
4
5 6
x par
x mpar
ns predicados dados
{(1,2)(2,3),(3,4),(4,5)} x par negativo -2
{(1,2),(2,4),(4,6)} x par positivo 3
read x;y:= 0;
write y;
x 0x < 0
-
8/2/2019 Teste de Unidade
19/24
Cobertura de decises
19[if977] Engenharia de SoNware SI CIn UFPE
1. if a >= 0 anda
-
8/2/2019 Teste de Unidade
20/24
Cobertura de decises/condies
20[if977] Engenharia de SoNware SI CIn UFPE
1. if a >= 0 and a 200
-
8/2/2019 Teste de Unidade
21/24
-
8/2/2019 Teste de Unidade
22/24
22
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
-
8/2/2019 Teste de Unidade
23/24
23
Automao de Testes Integrada
Testar essencial como referencial dequalidade
Falhas humanas so comuns
Realizar todos os testes, associados aartefatos modicados, imprescindvel
[if977] Engenharia de SoNware SI CIn UFPE
-
8/2/2019 Teste de Unidade
24/24
24
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] E h i d S N SI CI UFPE