teste de unidade

Upload: vinicius-cardoso-garcia

Post on 05-Apr-2018

222 views

Category:

Documents


0 download

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