Buscar

Testes de Software em Ambiente Web

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
TESTES DE SOFTWARE – AULA 4
Prof. Ulisses Sperle Graça
Rio de Janeiro, 27 de agosto de 2011
TESTE NO PROGRAMA
TESTE DE APLICAÇÕES DA WEB
*
1. Compreender técnicas de teste de ambiente web;
2. Definir testes de software em ambiente web;
3. Implementar testes de software em ambiente web;
4. Avaliar testes de software em ambiente web.
*
OBJETIVOS DESTA AULA
*
 Com o crescimento da Internet e a evolução das tecnologias envolvidas, as aplicações na WEB também evoluíram. Hoje grande parte dos negócios da organizações também estão na WEB e consequentemente ocorreu um aumento nos números de aplicações desenvolvidas para este fim. 
*
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
*
 Para atingir este objetivo deve ser utilizada uma estratégia de teste que abrange as revisões e o teste executável.
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: 
*
INTRODUÇÃO
*
no conteúdo,
na função,
na usabilidade,
na navegabilidade,
no desempenho,
na capacidade,
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. 
“Não se pode testar a qualidade. Se ela não estiver lá antes de você começar a testar, não estará lá quando você tiver terminado de testar.” (Pressman).
A qualidade é incorporada ao software em todo o processo de engenharia de software.
*
INTRODUÇÃO
*
A aplicação adequada de métodos e ferramentas, RTFs e um gerenciamento e medição sólidos, todos levam à qualidade que é confirmada durante o teste.
 
A qualidade é avaliada aplicando-se uma série de revisões técnicas e de um processo de teste com o objetivo de examinar uma ou mais das seguintes dimensões de qualidade:
*
CONCEITO DE TESTE NA WEB
*
*
Qualidade
Conteúdo
Função
Segurança
Usabilidade
Navegabi-lidade
Desempenho
Compatibilidade
Interope-rabilidade
Estrutura
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.
Função: é testada para descobrir erros que indicam falta de conformidade com os requisitos do cliente.
*
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
Usabilidade: é testada para garantir que cada categoria de usuário seja suportada pela interface.
*
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.
 
Desempenho: é testado sob uma variedade de condições de operação, configuração e carga para assegurar que o sistema responda à interação com o usuário e suporte cargas extremas sem degradação inaceitável de operaçã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.
 
Interoperabilidade: é testada para garantir que a aplicação tenha uma interface adequada com outras aplicações e/ou bases de dados.
*
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.
*
DIMENSÕES DE QUALIDADE
*
O processo de teste da aplicação Web começa com testes que verificam o conteúdo e a funcionalidade da interface, posteriormente são verificados aspectos da arquitetura do projeto e da navegação da aplicação e finalizando com os testes que examinam os recursos tecnológicos.
Diversos deste testes não são aparentes para o usuário final.
*
O PROCESSO DE TESTE NA WEB
*
Tarefas importantes:
Revise os requisitos dos interessados. Identifique metas e objetivos-chave do usuário. Revise os casos de uso para cada categoria de usuário.
Estabeleça prioridades para garantir que cada meta e objetivo do usuário seja testado.
Defina a estratégia de teste da aplicação descrevendo os tipos de teste que serão conduzidos.
Desenvolva um plano de testes.
*
O PROCESSO DE TESTE NA WEB
*
Tarefas importantes (cont.):
Execute testes de unidade. Revise o conteúdo quanto à erros sintáticos e semânticos.
Realize testes de integração. Conduza testes de navegação.
Realize testes de configuração. Avalie a configuração do lado do cliente e do lado do servidor.
Conduza testes de desempenho.
Conduza testes de segurança.
*
O PROCESSO DE TESTE NA WEB
*
Podemos observar melhor o processo de teste na Web através da figura adiante, representado através de uma pirâmide, os elementos que são visíveis ao usuário, são testados em primeiro lugar.
O fluxo do nosso processo de teste começa da esquerda para direita e de cima para baixo, começando pelo teste de conteúdo, teste de interface, teste de navegação, de componente e finalizando com os testes de configuração, desempenho e segurança. 
*
O PROCESSO DE TESTE NA WEB
*
*
O PROCESSO DE TESTE NA WEB
*
O modelo de conteúdo é revisto para descobrir erros;
O modelo de interface é revisto para garantir que todos os casos de uso possam ser acomodados;
O modelo de projeto da aplicação é revisto para descobrir erros de navegação;
A interface com o usuário é testada para descobrir erros nos mecanismos de apresentação e/ou navegação;
Os componentes funcionais são submetidos a testes de unidade;
*
O PROCESSO DE TESTE NA WEB
*
É testada a navegação por toda a arquitetura;
A aplicação Web é implementada em uma variedade de configurações ambientais diferentes e testada quanto à compatibilidade com cada configuração;
São executados testes de segurança na tentativa de explorar vulnerabilidades na Aplicação ou em seu ambiente;
São realizados testes de desempenho;
*
O PROCESSO DE TESTE NA WEB
*
A aplicação é testada por uma população de usuários finais controlados e monitorados e os resultados de suas interações com o sistema são avaliados quanto a erros de conteúdo e navegação, usabilidade, compatibilidade, segurança, confiabilidade e desempenho.
*
O PROCESSO DE TESTE NA WEB
*
O teste de conteúdo tenta descobrir erros antes que sejam encontrados pelos usuários. Ele combina tanto as revisões, já estudadas nas aulas anteriores, quanto à geração de casos de tese executáveis.
Os testes de conteúdo têm três importantes objetivos:
Descobrir erros de sintaxe;
Descobrir erros de semântica
Encontrar erros na organização ou estrutura do conteúdo apresentado ao usuário final;
*
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 CONTEÚDO
*
A verificação e validação de uma interface de
usuário ocorre em três pontos distintos:
Durante a análise garantir que esteja de acordo com os requisitos do cliente;
Durante o projeto  garantir que critérios genéricos de qualidade e que tópicos específicos foram tratados;
Durante o teste  execução de tópicos específicos relativos à interação como usuário e fornece uma avaliação final da usabilidade.
*
TESTE DE INTERFACE COM O USUÁRIO
*
Tem como objetivo descobrir erros relacionados com os mecanismos específicos da interface e descobrir erros na maneira como a interface implementa as semânticas de navegação, as funcionalidades da aplicação ou ainda na exibição do conteúdo.
Desta forma podemos distinguir basicamente quatro tipos de testes:
*
TESTE DE INTERFACE COM O USUÁRIO
*
Testes de mecanismos de interface: Avalia a interação de cada mecanismos oferecido ao usuário através da interface: link, formulários, script executado pelo cliente, janelas pop up e etc.
Teste de semântica da interface: Avalia como o projeto se preocupa com os usuários.
*
TESTE DE INTERFACE COM O USUÁRIO
*
Teste de usabilidade: determina o grau com o qual a interface da aplicação facilita a vida do usuário. 
Teste de compatibilidade: Diferentes computadores, dispositivos de imagem, sistemas operacionais, navegadores e velocidades de conexão de rede pode ter influência significativa na operação da aplicação Web. 
*
TESTE DE INTERFACE COM O USUÁRIO
*
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.
Cada uma destas funções é um componente de software que pode ser implementados através de diferentes linguagens e testados através de teste de caixa-preta ou ainda de caixa-branca, ambos já estudados.
*
TESTE DE COMPONENTE
*
Cada caso de teste de componente especifica todos os valores de entrada e saída esperada a ser fornecida pelo componente.
Em muitas situações, a execução correta de uma função da aplicação está ligada ao interfaceamento correto com um banco de dados que pode ser externo a aplicação, desta forma, o teste de banco de dados torna-se parte importante do teste de componente.
*
TESTE DE COMPONENTE
*
Um usuário navega por uma aplicação WEB de modo muito semelhante ao que um visitante caminha por uma loja ou museu.
Há muitos caminhos que podem ser trilhados, muitas paradas que podem ser feitas, muitas coisas para aprender e observar, atividades a iniciar e decisões a tomar.
*
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.
Desta forma este tipo de teste abrange:
Sintaxe
Semântica
*
TESTE DE NAVEGAÇÃO
*
Segundo Pressman, neste tipo de teste os mecanismos de navegação são verificados para garantir que cada um execute sua função planejada e garantir que os erros sejam encontrados antes que a aplicação entre no ar:
 
Links de navegação: Cada link deverá ser testado para assegurar que o conteúdo ou funcionalidade apropriada sejam alcançados quando o link é escolhido.
*
TESTE DE NAVEGAÇÃO - SINTAXE
*
Redirecionamentos: Quando um usuário solicita uma URL não existente ou seleciona um link cujo conteúdo foi removido, é exibida uma mensagem para o usuário e a navegação é redirecionada para outra página. 
 
Marcadores de páginas (Booksmarks): Apesar de ser uma função do navegador, deverá ser testado para assegurar que possa ser extraído um título de página com significado quando o marcador for criado.
*
TESTE DE NAVEGAÇÃO - SINTAXE
*
Mapas do site: Como o mapa do site fornece uma tabela completa de conteúdo para todas as páginas da web, cada entrada deverá ser testada.
 
Dispositivos de busca interna: Muitas aplicações, devido a quantidade de informações existentes, implementam mecanismos de busca. Deverá ser testado o teste destes mecanismos para validar a precisão e a totalidade da busca. 
*
TESTE DE NAVEGAÇÃO - SINTAXE
*
Molduras e conjunto de molduras: Cada moldura tem o conteúdo de uma página web específica. Um conjunto de moldura permite que várias páginas sejam exibidas ao mesmo tempo. O conjunto de molduras deverá ser testado quanto ao correto conteúdo, layout, dimensionamento apropriados e quanto a compatibilidade com o navegador. 
*
TESTE DE NAVEGAÇÃO - SINTAXE
*
A unidade semântica de navegação (NSU) pode ser exemplificada por um conjunto de caminhos de navegação que conectam nós de navegação (por exemplo, páginas Web, objetos de conteúdo ou funcionalidade) que permite ao usuário satisfazer requisitos específico definidos por um ou mais casos de uso para uma categoria de usuário.
Neste caso o teste semântico deverá responder as seguintes perguntas:
*
TESTE DE NAVEGAÇÃO - SEMÂNTICA
*
A NSU é atendida sem erro?
Cada nó de navegação é acessível no contexto dos caminhos de navegação definidos para a NSU?
Todos os caminhos relevantes foram testados?
Se forem fornecidas instruções pela interface de usuário para ajudar na navegação as instruções são corretas e inteligíveis à medida que a navegação ocorre?
*
TESTE DE NAVEGAÇÃO - SEMÂNTICA
*
Existe algum mecanismo para voltar a um nó de navegação anterior e ao início do caminho de navegação?
Se uma função é executada em um nó e ocorre um erro no processamento da função, a NSU pode ser completada?
Todos os nós podem ser acessados do mapa do site? Os nomes dos nós têm significado para os usuários finais?
*
TESTE DE NAVEGAÇÃO - SEMÂNTICA
*
O teste de navegação, bem com o teste de interface e de usabilidade, devem ser feitos além dos testadores, também por diferentes clientes, sempre que possível!
*
TESTE DE NAVEGAÇÃO - SEMÂNTICA
*
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. Perguntas a serem respondidas:
A aplicação é totalmente compatível com o sistema operacional do servidor?
Os arquivos de sistema, diretórios e dados de sistema relacionados são criados corretamente quando a aplicação está operacional?
*
TESTE DE CONFIGURAÇÃO
*
As medidas de segurança permitem que a aplicação seja executada sem a interferência ou degradação do desempenho?
A aplicação está adequadamente integrada com o software de banco de dados?
Os scripts utilizados pela aplicação executam corretamente?
*
TESTE DE CONFIGURAÇÃO
*
Lado Cliente  foca a compatibilidade da aplicação com configurações dos seguintes componentes:
Hardware: CPU, memória, armazenamento e dispositivo de impressão;
Sistemas operacionais: Linux, Macintosh OS, Microsoft, S.O. Móvel.
Software Navegador: Firefox, Safari, Internet Explorer, Opera, Chrome e outros.
*
TESTE DE CONFIGURAÇÃO
*
Componentes de interface de usuário: Active X, java Applets e outros.
Plug-ins: QuickTime, RealPlayer e outros.
Conectividade: Cabo, DSL, modem , WIFI.
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 CONFIGURAÇÃO
*
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.
 
Estes testes são projetados para investigar vulnerabilidades:
*
TESTE DE SEGURANÇA
*
Vulnerabilidades:
no ambiente do lado do cliente, 
Na comunicação de rede que ocorrem quando os dados são passados do cliente para o servidor
Na comunicação de rede que ocorrem quando os dados são passados do servidor para o cliente 
no ambiente do lado servidor. 
 
*
TESTE DE SEGURANÇA
*
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.
É muito frustrante para um usuário quando uma aplicação leva muitos minutos para carregar o conteúdo ou quando ao recebe do servidor uma mensagem do tipo “servidor ocupado”. 
*
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. 
A intenção é entender como os sistemas respondem quando a carga aumenta e ainda reunir métricas que conduzirão a modificações de projeto para melhorar o desempenho.
*
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:
Número de usuários concorrentes (N)
Número de transações on-line por usuários por unidade de tempo (T)
Carga de dados processados pelo servidor por transação (D)
*
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:
Resposta média do usuário;
Tempo médio para o download de uma unidade padronizada de dados;
Tempo médio para processar uma transação;
*
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.
A finalidade deste teste é responder as seguintes questões:
O sistema degrada ou o servidor desliga quando é excedida a capacidade normal de operação?
*
TESTE DE DESEMPENHO
*
O software servidor gera mensagens “servidor não disponível”? De uma maneira geral os usuários ficam cientes de que não podem acessar o servidor?
O servidor coloca as requisições por recursos em fila e esvazia a fila quando a demanda de capacidade diminui?
São perdidas transações quando a capacidade é excedida?
A integridade dos dados é afetada quando a capacidade é excedida?
*
TESTE DE DESEMPENHO
*
Quais valores de N, T e D forçam o ambiente servidor a falhar? Como a falha se manifesta? São mandadas notificações automáticas para o pessoal de suporte técnico no local do servidor?
Se o sistema falha, quanto tempo demora até que volte a ficar on-line?
*
TESTE DE DESEMPENHO
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando