Buscar

Técnica de Teste Estrutural - Teste de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Teste de Software
Rosemary Silveira Filgueiras Melo
rosesfmelo@hotmail.com
1
Técnica de Teste Estrutural
Agenda
 Casos de Teste e Cenários de Teste
 Técnicas de Teste
 Técnica de Teste Estrutural
2
Casos de Teste 
3
• Diante da impossibilidade de se realizar teste exaustivo é
necessário realizar casos de teste com critérios de teste
específico com o fim de identificar erros.
Conceitos de Casos de teste:
• conjunto de dados de entrada, condições de execução do 
sistema e resultado desenvolvido/projetado para atingir 
um objetivo específico (IEEE 829-2008).
• Sequência de passos que devem ser executados no 
sistema, sendo que os dados de entrada e saída esperada 
para cada passo são especificados.
Modelo de Casos de Teste 
4
Itens do Caso de teste (conforme norma IEEE 829-2008)
Identificador do caso de 
teste
Número de identificação do caso de teste
Objetivo do caso de teste Define o objetivo do caso de teste
Entradas Entradas que serão consideradas no caso de teste
Saídas Saídas esperadas de acordo com as entradas indicadas na 
execução dos testes
Ambientes necessários 
ou condições de 
ambiente
Ambiente de hardware e software que devem ser montados 
para o caso de teste em questão
Execução do caso de 
teste
Especifica com detalhe o que deve ser testado e a forma de 
como o teste deve ser executado
Dependência entre 
outros casos de teste
Casos de teste relacionados
5
Exemplo de Casos de teste 
1. Identificador do caso 
de teste
Caso de teste 1 – Testar Login
2. Objetivo do caso de 
teste
Verificar login inválido
3. Entradas Inserir um email inválido
4. Saídas Exbir mensagem “Login inválido”
5. Ambientes necessários 
ou condições de 
ambiente
nenhum
6. Execução do caso de 
teste
1. Selecione ícone do aplicativo
2. Exibir tela de login
3. Insira um email inválido
4. Exbir mensagem “Login inválido”
5. Exibir cursor no campo de login para usuário poder 
corrigir login
7. Dependência entre 
outros casos de teste
nenhum
Casos de Teste 
6
Critério de teste:
• Ajuda a definir um conjunto de casos de teste que 
potencialmente podem identificar erros.
• Cada critério de teste possui seus requisitos de teste, que 
ajudam a gerar os casos de teste de forma a satisfazer os 
critérios escolhido e também avaliar a qualidade do 
conjunto de teste existente.
Casos de Teste 
7
Exemplo de Critério de teste
 “Crítério dos números primos menores que 20”.
Significado:
 Toda funcionalidade que requer as entradas com números inteiros 
deve ser testada usando todos os números primos menores que 20.
 Definir Casos de Teste que considerem como entrada os números 2, 
3, 5, 11, 13, 17 e 19.
 Se não tiver casos de teste para esses números , então não se está em 
conformidade com os requisitos do critério de teste.
Cenário de teste
8
• Conjunto de casos de teste relacionados, ou agrupamento de
casos de teste, que comumente testam o mesmo
componente ou a mesma funcionalidade do sistema.
• Bastante utilizados em teste de regressão (teste realizados na
fase de manutenção) para garantir que novas
funcionalidades não inseriram defeitos nas antigas.
• Usados para revalidar mudanças nos casos de teste e treinar
novos testadores e pessoas que darão suporte ao sistema.
Técnicas de Teste
9
• Não existe um procedimento genérico que possa ser usado para provar a 
correção de um programa
A norma ISSO/IEC/IEEE 29119-4 define três técnicas de teste:
 Técnica baseada em estrutura também conhecida como técnica de caixa 
branca ou técnica estrutural
 Técnica baseada em código
 Técnica baseada em especificação também conhecida como técnica de 
caixa preta ou técnica funcional.
 Técnica baseada em funcionalidade
 Técnica baseada em experíência ou técnica baseada em erros.
 não comumente utilizada na indústria
Técnica Estrutural (Caixa Branca)
10
 Estabelece os requisitos de teste com base em uma dada implementação.
 Objetivo de testar as linhas de código do sistema (implementação) que 
irão prover as funcionalidades esperadas pelo sistema.
 Requer a execução de partes do programa.
 Adotada quando a equipe de teste tem acesso ao código fonte do sistema
 Essa técnica considera que o sistema a ser testado é uma caixa branca, ou 
seja, você sabe exatamente o que está dentro da caixa.
Técnica Estrutural (Caixa Branca)
11
 É preciso saber o que colocar dentro da caixa com base no que tem 
dentro da caixa (código fonte do sistema) e o que se espera que saia da 
caixa (saída de dados esperada).
 O testador deve está preocupado com a lógica que foi implementada o 
programa.
Caminhos lógicos do software são testados fornecendo casos de teste que
põem a prova conjunto de condições, laços, definições e uso de variáveis
Teste Estrutural (caixa branca) 
12
 Grafo de Fluxo de Controle (GFC) ou Grafo de Programa
 representação visual do código a ser testado para facilitar a definição 
dos casos de teste.
 conjunto de nós conectados por arcos com setas que indicam a 
direção de execução.
 Os nós representam um bloco de comando.
 Bloco de comandos é uma sequência atômica de linhas de código –
se uma for executada, todas serão.
 Os arcos indicam a precedência ou a sequência de execução do 
código e seus desvios.
Teste Estrutural (caixa branca) 
13
 Grafo de Fluxo de Controle (GFC) ou Grafo de Programa
 Um programa P pode ser decomposto em blocos de comandos.
 A execução do primeiro comando do bloco acarreta a execução dos 
demais comandos do bloco, na ordem especificada.
 Todos os comandos do bloco tem um único predecessor e um único 
sucessor , exceto o último e o primeiro.
 Não existe desvio de execução para nenhum comando dentro do 
bloco.
Teste Estrutural (caixa branca) 
14
 Grafo de Fluxo de Controle (GFC) ou Grafo de Programa 
 Para um programa P o GFC é dado por (G=(N,E,s))
 N representa o conjunto de nós
 E representa o conjunto de arcos
 s representa o nó de entrada
 GFC é um grafo orientado com um único nó de entrada (s que pertence N) e 
um único nó de saída (o que pertence a N)
 Faz-se uma correspondência entre vértices (nós) e blocos
 Cada vértice representa um bloco indivisível de comandos
 Cada aresta representa um possível desvio de um bloco para outro
Teste Estrutural (caixa branca) 
Representação de Estruturas de Programação
15
Representação de Estruturas de programação em grafo de fluxo de 
controle – Adaptado de (Pressman, Engenharia de Software, 2006)
Teste Estrutural (caixa branca) 
16
Teste Estrutural (caixa branca) 
Critérios
17
 Os critérios do teste estrutural são baseados em:
 Complexidade
 Fluxo de controle
 Teste de Comandos ou Teste todos os nós
 Teste de Ramos ou todas as tarefas ou todos os arcos
 Todos Caminhos
 Fluxo de dados
 Todos os usos
Teste Estrutural (caixa branca) 
Critérios baseados em complexidade
18
 Utilizam informações sobre a complexidade do programa para derivar os 
requisitos de teste
 Ex. Critério McCabe (teste de caminho básico)
 Utiliza a complexidade ciclomática para derivar os requisitos
 Métrica para medida quantitativa da complexidade lógica do programa
 O valor da complexidade define o número de caminhos que serve de 
limite para derivar casos de teste que cobrem todas as instruções
 Cada instrução terá a garantia de ser executada pelo menos uma vez
 Cada condição terá sido executada com verdadeiro ou falso
 Ex. de calculo V(G) = E – N + 2 , tal que 
 E: número de arcos
 N: número de nós
Teste Estrutural (caixa branca) 
Critérios baseados em fluxo de controle
19
 Utilizam características de controle da execução do programa
 Comandos, desvios
 Ex.:
 Critério Todos-Nós: exige que a execução do programa passe ao menos uma 
vez em cada nó do GFC (cada comando seja executado pelo menos uma vez)
 Critério Todas-Arestas (ou Todos-Arcos): requer que cada arco do grafo (cada 
desvio de fluxo de controle do programa) seja exercitada pelo menos uma 
vez.
 CritérioTodos-Caminhos: requer que todos os caminhos possíveis do 
programa sejam executados
Mínimo esperado: Todos-Nós
Pode ser um número muito grande de caminhos (até infinito)
Teste Estrutural (caixa branca) 
Critérios baseados em fluxo de controle
20
 Critério Todos-Nós - Teste de Comandos ou Teste todos os nós
 Define como requisito de teste que todos os comandos dos programas sejam 
executados pelo menos uma vez.
 Deve-se criar casos de teste cujos nós sejam executados pelo menos uma vez.
 Deve-se criar uma menor quantidade de casos de teste possível, mas que atinja 
esse critério.
 O foco deve ser nos comandos que controlam as decisões do sistema visando 
direcionar os testes para que todos os nós sejam atingidos.
Teste Estrutural (caixa branca) 
Critérios baseados em fluxo de controle
21
 Critério Todas-Arestas - Teste de Ramos ou todas as arestas ou todos os 
arcos 
 Define como requisito de teste que todas as condições verdadeiras 
e falsas do programa sejam executadas. 
 Todos os arcos (também chamados arestas) do fluxo de controle 
devem ser executados, mesmo que um nó seja executado mais de 
uma vez.
Teste Estrutural (caixa branca) 
Exemplo utilizando os critério Todos-Nós e Todas-Arestas
22
 Para o exemplo acima, dois casos de testes são suficientes:
• um para uma entrada que faça a execução do programa caminhar para o nó 2 
(entrar no IF).
• outro para uma entrada que faça a execução do programa caminhar para o nó 3 
(entrar no SENÃO).
• Os dois casos de teste atendem os critérios de Teste Todos-Nós e Todas-Arestas
Observação: raro satisfazer requisitos de dois critérios para o mesmo conjunto de Casos de 
teste, só em caso de exemplo bem simples como esse.
Teste Estrutural (caixa branca)
Exemplo utilizando Critério de Todas-Arestas
23
 Estar em conformidade com os requisitos de um critério de teste 
não garante que todos os defeitos serão encontrados.
 Quanto mais exigente o critério, mais sequência serão 
necessárias para estarem em conformidade com seu requisito e as 
chances de identificar os defeitos aumentam.
 A tendência é que um critério de teste complemente o outro e 
que o número de casos de teste aumente, a fim de executar o 
maior número de código fonte possível.
Exemplo de alguns casos de teste que atendem esse critério:
Teste Estrutural (caixa branca) 
Critérios baseados em fluxo de dados
24
 Teste baseado em fluxo de dados
 Utiliza análise de fluxo de dados para derivar os casos de teste
 Critério baseados na associação entre a definição de variáveis e seus possíveis usos
 usa o “tipo de uso/ocorrência” de uma variável para auxiliar na definição de critérios.
Existe três tipos de ocorrências de variáveis:
DEF – indica definição, quando um valor está sendo atribuído a uma variável
C-USO - afeta diretamente uma computação (relacionado aos nós)
P-USO - afeta diretamente o fluxo de controle do programa (relacionado aos arcos)
Teste Estrutural (caixa branca) 
Critérios de Teste
25
 Teste baseado em fluxo de dados -
Todos os usos
• Define como requisito de teste que 
todos os usos das variáveis utilizadas 
em cada comando sejam executados.
• Deve-se identificar os usos de todas as 
variáveis do programa e classificá-las de 
acordo com def, c-use e p-use.
• Construir, para cada variável, uma 
tabela especificando definição e uso 
(par d-u) para que esses dados sejam 
usados na elaboração dos casos de 
teste.
Teste Estrutural (caixa branca) 
Exemplo
26
Ex.: Programa “identifier”
 Programa para determinar se um identificador é válido ou não
 Identificador válido deve começar com uma letra e conter apenas 
letras e dígitos
 Deve ter no mínimo 1 e no máximo 6 caracteres de comprimento
 O programa “identifier” contém um defeito
Teste Estrutural (caixa branca) 
27
Main()
Char achar;
Int length, valid_id;
Length = 0;
Valid_id = 1;
Printf(“Identificador: ”);
Achar = fgetc(stdin);
Valid_id = valid_s(achar);
If (valid_id){
length = 1;
}
Achar = fgetc(stdin);
While (achar != ‘\n’){
if (!(valid_f(achar))){
valid_id = 0;
}
length++;
achar = fgetc(stdin);
}
If (valid_id && (length >= 1) 
&& (length<6)) {
printf(“valido\n”);
}
else
{ 
printf(“invalido\n”);
}
}
Int valid_s (char ch){
if (((ch>=‘A’) && (ch <=‘Z’)) ||
((ch>= ‘a’) && (ch <= ‘z’))) {
return (1);
Else
return (0);
}
}
Int valid_f(char ch) {
if (((ch >= ‘A’) && (ch<=‘Z’)) ||
((ch >= ‘a’) && (ch <= ‘z’)) ||
((ch >= ‘0’) && (ch <=‘9’))){
return (1);
Else
return (0);
}
}
Elabore o GFC para a seguinte implementação:
Teste Estrutural (caixa branca) 
Grafo de Fluxo de Controle do programa anterior 
28
1
2
3
4
5
6
7
8
9 10
11
(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
Teste Estrutural (caixa branca) 
29
 O Teste estrutural é baseado em conceitos e elementos do programa para 
determinar os requisitos de teste
 A estes elementos estão associados os critérios de teste
Elemento Exemplo Critério
Nó 6 Todos-Nós
Arco (5,6) Todas-Arestas
Caminho (1,2,3,4,8,9,11) Todos-Caminhos
Definição de variáveis length=0 Todas-Defs
Uso predicativo de 
variável
Achar != ‘\n’ Todos-p-Usos
Uso computacional de 
variável
Length++ Todos-c-Usos

Outros materiais