Teste Funcional de Software Métodos de teste caixa-preta para a validação de software
Teste Funcional baseia-se na Especificação de Requisitos DADOS RESULTADOS baseia-se na Especificação de Requisitos independente da implementação seleção de dados baseada nos dados e condições de entrada
Teste Funcional (caixa-preta) questões a serem verificadas: as funções são realizadas? as entradas produzem resultados esperados? integridade das informações externas é mantida métodos para determinação de dados de teste Particionamento em Classes de Equivalência Análise de Valores Limites do Domínio Grafos Causa-Efeito 26
Particionamento em Classes de Equivalência identificação de classes de equivalência sobre o domínio dos dados de entrada o domínio de entrada é subdividido em sub-domínios selecionar dados para cada sub-domínio Exemplo: domínio: datas sub-domínios: dias úteis e feriados
Classes de Equivalência Particionamento em Classes de Equivalência passos: listar condições de entrada descritas na especificação do programa identificar para cada condição: domínios válidos, enumerações válidas e valores não válidos decompor condições compostas em elementares exemplo: 35 < idade < 45 => idade > 35, idade < 45 criar um conjunto de dados de teste,onde cada dado exercite pelo menos uma condição
Exemplo: Consistência de Datas Condições Simples Combinações de Condições Mês-Dia: Fev: 1 - 28, 29 Abr Jun Set Nov: 1 - 30
Exemplo: Identificadores em Pascal iniciam por letra, seguida opcionalmente por dígitos/letras ou hífen; tamanho 1-32 casos: A1_B condições testadas: 1, 2, 3, 5, 6, 9, 12 ?xy 4, 5, 6
Análise dos Limites do Domínio Critério de seleção de dados que identifica valores nos limites das classes de equivalência Exemplos: valor mínimo (máximo) igual ao mínimo (máximo) válido uma unidade abaixo do mínimo arquivo vazio arquivo maior que a capacidade de armazenamento cálculo que pode levar a overflow/underflow erro no primeiro/último registro 28
Exemplo: Consistência de Datas Condições de Entrada Dados de Contorno: Dias: 0, 1, 31, 32, (28, 29 e 30 para fevereiro) Mês: 0, 1 ,12, 13 Ano: 1899, 1900, 1998, 1999
Grafos Causa-Efeito exploram combinações de condições de entrada relacionam dados/condições de entrada com resultados/efeitos apontam ambigüidades e incompleteza nas especificações passos: listar as causas (dados/condições iniciais) listar os efeitos (resultados produzidos) ligar causas a efeitos transformar o grafo numa tabela de decisão transformar a tabela num conjunto de dados de teste (número de colunas = número de casos)
Ligação de Causas a Efeitos Identidade: o efeito b ocorre se a condição a é verdade a b Negação: o efeito b ocorre se a condição a não é verdade a b Conjunção: x ocorre se a, b e c são verdades a b x and c
Ligação de Causas a Efeitos Disjunção: o efeito x ocorre se pelo menos uma das causas a, b ou c é verdade a x c b or Restrição a causas: causas simultâneas e mutuamente Exclusivas a a S E b b
Eemplo: A, B, e C são lados de um triângulo. Imprimir o tipo do triângulo. Exemplo: A, B, e C são lados de um triângulo. Imprimir o tipo do triângulo.
Exemplo: O primeiro caracter deve ser A ou B. O segundo caracter deve ser dígito. Assim sendo, o arquivo deve ser atualizado. Se o primeiro caracter for incorreto, emitir mensagem M1. Se o segundo caracter não for dígito, emitir M2. Eemplo: A, B, e C são lados de um triângulo. Imprimir o tipo do triângulo. Causas: 1) primeiro caracter é A 2) primeiro caracter é B 3) segundo caractere é dígito Efeitos: 4) atualiza arquivo 5) emite mensagem M1 6) emite mensagem M2 5 1 or E 4 2 and 3 6
Grafos Causa-Efeito Construção da Tabela de Decisões para cada efeito, percorra o grafo no sentido efeito-causa e selecione as combinações de causas que produzem o efeito considerado crie uma coluna na tabela de decisões para cada combinação de causas
Determinação de Colunas Não precisa indicar todas as combinações de valores de a, b e c a b x and c Não é necessário indicar todas as combinações de valores de a, b e c a x c b or
Dificuldades no Teste Funcional determinação dos dados de teste especificações de requisitos ambíguas, incompletas, desatualizadas determinação dos resultados esperados manual determinação dos casos de teste durante a Especificação de Requisitos