Qualidade de Software

Testes de Software

2013-1 - Aula 10

© Prof. Sérgio Almeida Dias, todos os direitos reservados

Premissas Gerais

  • Testar 100% é impossível
  • Testar não é simples
    • Para testar, é preciso conhecer profundamente o sistema
    • Os sistemas não são simples e nem simples de entender
  • Testes devem ser Projetados e Planejados
    • Eventualmente também desenvolvidos
  • Testar requer independência
    • Tanto de pensamento quanto organizacional

Plano de Testes

  • Objetivos
    • Cobertura
    • Objetivos Não Funcionais
      • Requisitos que serão testados
  • Estratégia
    • Execução Interna ou externa
    • Massas de dados
    • Automação
  • Planejamento e cronogramas

Casos de Testes

Consiste em:

  • Um conjunto de entradas possíveis do programa
  • Um conjunto de saídas esperadas para as entradas

Exemplo de Caso de Testes

Seja um programa para classificar triângulos com a seguinte especificação:

ENTRADA: Os três lados tal que a >= b >= c (a,b,c inteiros)

SAÍDA: Classificação do triângulo:

1- Não é triângulo

2- Triângulo equilátero

3- Triângulo isósceles

4- Triângulo escaleno reto

5- Triângulo escaleno obtuso

6- Triângulo escaleno agudo

Casos de Testes gerados

SAÍDA -> ENTRADA

Tripla ilegal -> (1,2,3)

Não é triângulo -> (11,6,4)

Triângulo equil.. -> (1,1,1)

Triângulo isósc. -> (2,2,1)

Triângulo esc. reto -> (5,4,3)

Triângulo esc. agudo -> (6,5,4)

Triângulo esc. obtuso -> (4,3,2)

Mais conceitos

Teste: É um conjunto de casos de teste a serem aplicados em um programa.

Procedimentos de Teste: É a sequência de ações para se executar um teste ou um caso de teste.

Métodos de teste: São métodos para se gerar casos de teste

Métodos de caixa branca

  • Cobertura Lógica
    • Cobertura de Comandos: todas as linhas do programa devem ser executadas.
      • Mais simples e sujeito a falhas
    • Cobertura de Decisões: testa todas as condições do Programa
    • Cobertura de Condições: cada condição em uma decisão deve ser testada ao menos uma vez em todas as suas saídas possíveis
    • Cobertura de Decisões-Condições
    • Cobertura de múltiplas condições

Fluxograma de exemplo

Cobertura de Comandos

Um único caso de testes daria a cobertura de comandos:

A = 2, B=0 , X qualquer

Erros não detectados:

A > 1 OU (deveria ser E) B= 0

A=2 OU X > 0 (deveria ser 1)

Cobertura de Decisões

Além do caso anterior:

A=3, B=0, X=3

o programa passa por a c d

A=2, B=1, X=1

o programa passar por a b e

Um erro na segunda decisão como X < 1 ao invés de X > 1, não seria detectado

Cobertura de Condições

Condição do exemplo:

A> 1, B=0, A=2, X > 1

Gerar Casos de Teste para testar as situações:

A>1 e A <=1

B=0 e B <> 0

A=2 e A <> 2

X>1 e X <= 1

Estes casos de teste satisfazem as condições:

A= 2, B=0, X=3

A=2, B= 1, X=1

Cobertura de Decisões-Condições

É uma combinação dos dois últimos critérios.

Cada condição em uma decisão é testada em

todas as suas saídas possíveis e cada decisão tem sua saída V ou F percorrida ao menos uma

vez.

Cobertura de Decisões-Condições

A= 1, B=1, X= 1

satisfaz A <= 1, B<> 0 e X <=1, fazendo com que o fluxo do programa passe pelo N das duas decisões

A= 2, B=0, X= 3

A > 1, B = 0 e X > 1, fazendo com que o fluxo do programa passe pelo Y das duas decisões

Em algumas situações, uma condição pode mascarar outras.

Cobertura de Múltiplas Condições

Os casos de teste são tais que todas as combinações de condições em cada decisão são cobertas.

Testes de Caixa Preta

  • Partição em Classes de Equivalência
    • Os casos de teste são gerados a partir do conhecimento das entradas, de maneira sistemática e direta
  • Método do Grafo de Causa e Efeito

Créditos

Prof. Pasteur Ottoni de Miranda Junior
PUC Minas
http://www.pasteurjr.blogspot.com.br/

Qualidade - Aula 10 - Google Slides