sábado, 31 de agosto de 2013

Notas de Teste de Software - Parte 2 Teste Estrutural
Benefícios:
  • Os critérios de teste em geral possuem uma abordagem sistemática e teoricamente fundamentada para conduzir uma atividade de teste. Aumentam a garantia de que os casos de testes irão revelar defeitos. Cada técnica depende da origem dos dados para criar os casos de testes. A técnica estrutural tem como base a implementação. 
  • Complementa outras técnicas: depuração, manutenção e avaliação da confiabilidade.
Limitações:
  • Não existe um procedimento de teste de proprósito geral para provar a correção de um programa. É indecidível se dois ou mais programas computam a mesma função; se dois caminhos de um mesmo programa, ou de programas diferentes, computam a mesma função; e se um dado caminho é executável e se existe um conjunto de dados de entrada que leve à execução desse caminho.
  • Caminhos ausentes durante a execução do teste e correção coincidente.
Geralmente o teste estrutural é representado utilizando um Grafo de Fluxo de Controle (GFC).

Diretrizes
Caminho
seqüência de vértices conectados por arestas.
Caminho Simples
Caminho em que um nó não se repete, exceto o primeiro e último.
Caminho Livre de Laço
Caminho em que um nó não se repete.
Caminho Completo
caminho que inicia no nó de entrada e termina em um nó de saída.
Caminho não executável
Se existe algum nó ou vertice não executado de acordo com um dado de entrada.
Caminho Livre de Definição
Não contém redefinição uma varíavel ao longo do caminho
Definição Global
Ou contém um caminho livre de definição para um nó ou existe C-USO ou P-USO da varíavel em um arco.

Definições
C-USO – uso computacional
P-USO – uso predicativo
USO- quando a referência não define valor a uma variável
Indefinição – Quando variável não tem referência à memória.

(2,3,4,5,6,7) caminho simples e livre de laços.

(1,2,3,4,5,7,4,8,9,11) caminho completo.

(1,3,4,8,9) caminho não executável.



  • Todos-Nós  exige que a execução do programa passe, ao menos uma vez, em cada vértice do grafo de fluxo, ou seja, que cada comando do programa seja executado pelo menos uma vez.
  • Todos-Arcos requer que cada aresta do grafo, ou seja, cada desvio de fluxo de controle do programa, seja exercitada pelo menos uma vez.
  • Todos-Caminhos requer que todos os caminhos possíveis do programa sejam executados. 
  • Todas-Definições: requer que cada definição de variável seja exercitada pelo menos uma vez, não importa se por um c-uso ou por um p-uso.
  • Todos-Usos: requer que todas as associações entre uma definição de variável e seus subseqüentes usos (c-usos e p-usos) sejam exercitadas pelos casos de teste, através de pelo menos um caminho livre de definição, ou seja, um caminho onde a variável não é redefinida.
Teste estrutural pode ser aplicado para teste de unidade pelo próprio desenvolvedor entre as fases e caminhos dentro das unidades, entre as unidades, subsistemas e sistemas.

Teste Estrutural – Teste de Fluxo de Dados
  • Teste de fluxo de dados possui intenção de revelar defeitos em decorrência de valores incorretos na codificação.
  • Princípio da definição dos critérios: sequência das ações realizadas sobre as variáveis mais onde elas são definidas e utilizadas.

Anomalias do Fluxo de Dados
Uso de variável não inicializada.
Atribuição de valor a uma variável mais de uma vez sem que tenha havido uma referência a essa variável entre essas atribuições.
Liberação ou reinicialização de uma variável antes que ela tenha sido criada ou inicializada.
Liberação ou reinicialização de uma variável antes que ela tenha sido usada.
Atribuir novo valor a um ponteiro sem que a variável tenha sido liberada.

Notação
Significado
~
Não existe variável
d
Definição da variável
u
Uso da variável
K
Destruição da variável
~d
 Variável não existe e é definida (correto)
~u
Variável não existe e é usada (incorreto)
~k
Variávelnão existe e é destruída
dd
Definida e redefinida (incorreto se global)
du
Definida e usada (correto)
dk
Definida e destruída (incorreto)
ud
Usada e definida (aceitável)
uu
Usada e reusada (aceitável)
uk
Usada e destruída (aceitável)
kd
Destruída e redefinida (aceitável)
ku
Destruída e usada (incorreto)
Kk
Destruída e destruída novamente (incorreto)


Diretrizes
c-use(i)
Variáveis com uso global no bloco i
def(i)
Variáveis com definição global no bloco i
p-use(i,j)
Variáveis com p-usos no arco i,j
dcu(x,i)
Existe um caminho livre de definição do nó i até nó j
dpu(x,i)
Existe um caminho livre de definição do nó i até arco j
du-caminho(x)
Existe uma definição global de x, (tem um c-uso e existe um caminho simples livre de definição) ou (existe um p-uso e existe um caminho livre de definição e livre de laço.
Associação definição c-uso
é uma tripla (i,j,x) onde i é um nó que contém uma definição global de x e j pertence a dcu(x,i)
Associação definição p-uso
é uma tripla (i,(j,k),x) onde i é um nó que contém uma definição global de x e j pertence a dpu(x,i)
TodasDefinições
requer que cada definição de variável seja exercitada pelo menos uma vez, não importa se por um c-uso ou por um p-uso.
TodosUsos
requer que todas as associações entre uma definição de variável e seus subsequentes usos (c-usos e p-usos) sejam exercitadas pelos casos de teste, através de pelo menos um caminho livre de definição, ou seja, um caminho onde a variável não é redefinida.
TodosDuCaminhos
requer que toda associação entre uma definição de variável e subsequentes p-usos ou c-usos dessa variável seja exercitada por todos os caminhos livres de definição e livres de laço que cubram essa associação.
Associação definição-uso
é uma tripla (var,def,uso) onde var é uma variável com a definição-uso, def é um nó que contém uma definição de var e uso contém um nó ou arco com c-uso ou p-uso de var.
Potencial-associação
Associações são estabelecidas sem a necessidade de um uso explícito.
Potencial definição-uso
é uma tripla (var,def,uso) onde var é uma variável com a definição-uso, def é um nó que contém uma definição de var e uso c-uso ou p-uso possível de var em um nó ou arco.
               

Preenchem a lacuna entre os critérios GFC todos os nós e todos os arcos, porque considera a inclusão de todos os usos (c-usos e p-usos) das variáveis.



0 comments:

Postar um comentário

Inscreva-se

Creative Commons 3.0. Tecnologia do Blogger.

Teste a Velocidade da Internet

Siga-me

Curta