O objetivo principal de qualquer técnica de testes é maximizar a relação percentagem de defeito sobre o número de testes feitos. O ideal é fazer o menor número de teste e testar a maior parte do sistema todo.

Princípios

  • Testar completamente é impossível
  • Testar é um trabalho criativo e difícil
  • Testes devem ser planejados e projetados
  • Teste requer independência (sem vícios)

Conceitos

  • Casos de teste: conjunto de entradas possíveis do programa
  • Métodos de teste: métodos para se gerar casos de teste

  • Caixa branca ou estruturais

  • Caixa preta

Métodos de Testes de Caixa Branca

Cobertura Lógica

São critérios que devem ser obedecidos para determinar os casos de testes.

Fatores para escolha dos critérios:

  • Complexidade do programa a se testar
  • Estrutura do programa a ser testado
  • Criticidade do programa a se testar
  • Nível de confiança que se deseja atingir

Critérios

  • Cobertura de comandos

  • Todos os comandos que existem no programa a ser testado sejam executados

  • Cobertura de decisões

  • O teste deve passar por todas as decisões do programa nos dois casos (verdadeiro e falso) pelo menos uma vez.

  • Cobertura de decisões-condições

  • Cobertura de múltiplas condições

  • Combinar todas as possibilidades nas duas decisões dadas no exemplo.

Método dos caminhos básicos

  • Fortemente embasado na teoria de grafos
  • Os casos de testes gerados passem por um número ótimo de caminhos entre a entrada e saída do programa

Definições

  • Grafo de controle: descreve o fluxo do programa
  • Caminhos independentes: é um caminho que não é constituído pela combinação de dois ou mais outros (não apresenta redundância).

  • Existem 3 formas de se contar o número de caminhos independentes (Complexidade Ciclomática)

  • Número de regiões: contar o número de regiões (blocos dentro do IF) e uma externa

  • C = E -N +2 onde, C número de caminhos independentes, E número de arestas e N número de nós.
  • Número de estruturas de decisão + 1

Geração dos casos de teste

Cada caminho independente gera um caso de teste