Академический Документы
Профессиональный Документы
Культура Документы
Conteúdo Programático
• 3.1 – Depuração
• 3.2 – Teste de Caixa-Branca
• 3.3 – Teste de Caixa-Preta
• 3.4 – Teste de Ambiente Web
Introdução
• "Há um mito segundo o qual , se fôssemos realmente bons
para programar , não haveria 'bugs' a ser procurados. Se
pudéssemos realmente nos concentrar, se todos usassem
programação estruturada, projeto 'top-down' , tabelas de
decisão, se tivéssemos as balas de prata certas, então não
haveria 'bugs'." Beizer, 1990
Introdução
• A tarefa de efetuar testes em software foi considerada
secundária por muito tempo.
Introdução
• O objetivo primordial de qualquer técnica para testes é :
MAXIMIZAR (% defeitos encontrados/número de testes feitos)
Depuração
• Antes de continuar deve ficar bem claro que teste e
depuração são conceitos diferentes.
Ferramentas de Depuração
• De forma geral, linguagens de alto nível tornam a depuração
mais fácil, pois fornecem mais ferramentas para identificar
erros, como o tratamento de exceções.
– Ex: Java, PHP, .Net, etc. Em ambos os casos as IDEs fornecem a
interface para a depuração
Ferramentas de Depuração
Ferramentas de Depuração
Exercício
• Depurar código java para identificarmos onde está ocorrendo
a falha na exibição das respostas esperadas.
Teste de Caixa-Branca
• Também conhecidos como Testes Estruturais
Teste de Caixa-Branca
• Estudaremos 2 métodos:
– Cobertura Lógica (Critérios Myers)
Coberturas
• Comandos
• Decisões
• Condições
• Decisões-Condições
• Múltiplas Condições
Cobertura de Comandos
• Neste critério os casos de teste devem ser gerados de forma
que ao serem executados, o fluxo do programa passe por
todos os COMANDOS existentes no mesmo.
Cobertura de Comandos
Cobertura de Comandos
• Um único caso de teste é suficiente para que este critério seja
satisfeito :
– A = 2, B=0 , X qualquer (caminho a c e, passa por todos os comandos, quais
sejam: X = X/ A e X= X + 1)
Cobertura de Decisões
• Neste critério os casos de teste serão gerados de tal forma que
cada decisão tenha todas as suas opções de saída (V ou F)
percorridas ao menos uma vez. Este critério engloba o anterior.
Cobertura de Condições
• Neste critério os casos de teste são tais que cada condição
em uma decisão deve ser testada ao menos uma vez em
todas as suas saídas possíveis.
Cobertura de Condições
• Os seguintes casos de teste satisfazem a estas situaçõ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.
Grafo de Controle
• É um grafo orientado (ou seja, suas arestas possuem setas)
que descreve o fluxo de controle do programa. Na realidade, o
grafo de controle não passa de um fluxograma com símbolos
diferentes, quais sejam:
Grafo de Controle
• Por exemplo, o procedimento abaixo terá o seguinte grafo:
Grafo de Controle
Caminhos Independentes
• No grafo de controle identificamos os chamados caminhos
independentes.
Caminhos Independentes
• 1. Contar o número de regiões no grafo de controle.
Caminhos Independentes
• 2. Aplicar a fórmula
C = E-N+2
Onde:
C = número de caminhos independentes
E = número de arestas (Edges)
N = número de nós (Nodes)
Caminhos Independentes
• 3. Contar o número de estruturas de decisão no programa e
somar 1.
Caminhos Independentes
• Para identificar os caminhos independentes em um grafo
fazemos o seguinte:
• Determinar o número de caminhos independentes conforme visto
anteriormente.
Passos do Método
• Passo 1: Desenhar o grafo de controle
• Passo 5:
• Executar cada caso de teste
• Checar os resultados obtidos contra os esperados
• O teste estará completo quando houver confiança absoluta em
que todos os casos de teste obtêm resultados satisfatórios.
Teste de Caixa-Preta
• Conhecido também como Teste Comportamental
• Erros de Interface
Teste de Caixa-Preta
• Diferentemente do teste Caixa-Branca, que é executado na da
fase de implementação, o teste Caixa-Preta é executado na
fase de teste do projeto.
Etapas da Técnica
1. Identificar as classes de equivalência de Entrada
Introdução
• Com o crescimento da Internet e a evolução das tecnologias
envolvidas, as aplicações na WEB também evoluíram.
Introdução
• O teste de uma aplicação WebApp (aplicações para Web) é
um conjunto de atividades relacionadas com um único
objetivo:
• Descobrir erros
• Mas como?
Introdução
• O processo de teste começa focando os aspectos visíveis da
aplicação ao usuário e abrange os aspectos de tecnologia e
infraestrutura, neste caso em sete etapas de teste:
1. No conteúdo,
2. Na função,
3. Na usabilidade,
4. Na navegabilidade,
5. No desempenho,
6. Na capacidade,
7. Na segurança das aplicações e etc.
Introdução
• A qualidade, segundo Pressman (2011) é incorporada a uma
aplicação Web como consequência de um bom projeto.
Dimensões de Qualidade
Estrutura
Interoperabilidade Qualidade
Usabilidade
Dimensões de Qualidade
• Conteúdo: É avaliado no nível semântico e sintático. No
nível sintático examina-se a ortografia, pontuação e
gramática. No nível semântico são verificadas a exatidão,
consistência e ausência de ambiguidade das informações.
Dimensões de Qualidade
• Estrutura: É avaliada para assegurar o fornecimento
apropriado do conteúdo e função da aplicação. Que seja
extensível e possa ser mantida à medida que novo conteúdo
ou funcionalidade é adicionado
Dimensões de Qualidade
• Navegabilidade: É testada para assegurar que toda a sintaxe
e semântica de navegação sejam experimentadas para
descobrir quaisquer erros de navegação.
Dimensões de Qualidade
• Compatibilidade: É testada executando-se a aplicação em
uma variedade de diferentes configurações hospedeiras tanto
no lado cliente quanto no lado servidor.
Dimensões de Qualidade
• Segurança: É testada para investigar vulnerabilidades
potenciais e tentar explorar cada uma delas. Qualquer
tentativa bem-sucedida de invasão é considerada falha de
segurança.
Teste de Conteúdo
• O teste de conteúdo tenta descobrir erros antes que sejam
encontrados pelos usuários.
Teste de Conteúdo
• O revisor deverá responder as seguintes perguntas:
• As informações são precisas?
• As informações são concisas e direcionadas ao assunto?
• É fácil para o usuário entender o layout do conteúdo?
• As informações apresentadas são consistentes internamente
e consistentes com as apresentadas em outros objetos?
• Foram fornecidas referências apropriadas para todas as
informações derivadas de outras fontes?
Teste de Conteúdo
• O revisor deverá responder as seguintes perguntas:
• O conteúdo é ofensivo, confuso ou dá margem a litígio?
• O conteúdo desrespeita os direitos autorais existentes ou de
marcas registradas?
• O conteúdo contém links que complementam o conteúdo
existente? Os links estão corretos?
• O estilo estético do conteúdo está em conflito com o estilo
estético da interface?
Teste de Componente
• O teste de componente, também conhecido como teste de
função, tem como objetivo tentar descobrir erros nas funções
da aplicação Web.
Teste de Componente
• Cada caso de teste de componente especifica todos os
valores de entrada e saída esperada a ser fornecida pelo
componente.
Teste de Navegação
• Um usuário navega por uma aplicação WEB de modo muito
semelhante ao que um visitante caminha por uma loja ou
museu.
Teste de Navegação
• Seu objetivo é garantir que os mecanismos que permitem ao
usuários navegar através da aplicação Web estejam todos em
funcionamento e que cada unidade semântica de navegação
possa ser alcançada pela categoria apropriada de usuário.
Teste de Configuração
• O objetivo do teste de configuração (Pressman, 2011) é testar
um conjunto de prováveis configurações do cliente e do
servidor para assegurar que a experiência do usuário será a
mesma em todos os casos e isolar erros que podem ser
específico a uma determinada configuração.
Teste de Configuração
• Lado Servidor: Os casos de teste são projetados para
verificar se a configuração do servidor pode suportar a
aplicação sem erro.
Teste de Configuração
• Perguntas a serem respondidas:
• A aplicação é totalmente compatível com o sistema operacional do
servidor?
Teste de Configuração
• Lado Cliente: Foca a compatibilidade da aplicação com
configurações dos seguintes componentes:
Teste de Configuração
Estes testes devem ser projetados onde cada categoria
de usuário seja avaliada para determinar as prováveis
configurações que serão encontradas, reduzindo assim o
número de variáveis de configuração para um número
gerenciável.
Teste de Segurança
• As aplicações Web e os ambientes cliente e servidor nos
quais as aplicações estão alojadas representam um alvo para
invasores externos, funcionários insatisfeitos, concorrentes
desonestos e qualquer outro que queira roubar informações
sigilosas, modificar conteúdo maliciosamente, degradar o
desempenho ou desabilitar funcionalidades.
Teste de Segurança
• Estes testes são projetados para investigar
vulnerabilidades:
Teste de Desempenho
• A medida que em que aumenta o número de usuários nas
aplicações web, consequentemente ocorre um aumento do
número de transações online ou na quantidade de dados
através das operações de download ou upload.
Teste de Desempenho
• O teste de desempenho é usado para descobrir problemas de
desempenho que podem resultar, por exemplo, da falta de
recursos no lado do servidor, da largura da banda ou recursos
de banco de dados inadequados.
Teste de Desempenho
• Este tipo de teste ajudará a responder as seguintes
questões:
• O tempo de resposta do servidor degrada de forma a
tornar-se inaceitável?
• Em que ponto, sob o ponto de vista dos usuários,
transações ou cargas de dados, o desempenho se torna
inaceitável?
• Quais componentes do sistema são responsáveis pela
degradação do desempenho?
• Qual o tempo médio de resposta para usuários sob
diferentes condições de carga?
Teste de Desempenho
• Para obter respostas a essas perguntas são feios dois testes
diferentes de desempenho:
- Teste de carga
- Teste de esforço (Stress)
Teste de Desempenho
• Teste de Carga: A finalidade do teste de carga é determinar
como a webApp e seu ambiente do lado do servidor
responderá a várias condições de carga. São utilizadas como
condições de teste as seguintes variáveis:
Teste de Desempenho
• À medida que o teste é feito, são realizadas permutações nas
variáveis de acordo com os limites de operação normal do
sistema e coletas uma ou mais das seguintes medidas:
Teste de Desempenho
• Teste de Esforço (stress): É uma continuação do teste de
carga, e desta forma utilizam as mesmas variáveis: T, N, D,
porém com seus limites operacionais excedidos.
Teste de Desempenho
• A finalidade deste teste é responder as seguintes questões:
Teste de Desempenho
• A finalidade deste teste é responder as seguintes questões: