2ª Parte Objetivos do Teste - PDF
2ª Parte Objetivos do Teste
Download "2ª Parte Objetivos do Teste"
Bento Alves Pacheco
1 2ª Parte Objetivos do Teste O teste de software geralmente é conduzido por objetivos, que podem ou não ser claros Diferentes propriedades podem ser verificadas Teste Funcional Ø Também conhecido como teste de conformidade ou teste de corretude Ø Verificar se o software possui o comportamento esperado Ø Pode ser executado em vários níveis Ø Diversas ferramentas de apoio - Teste Funcional Selenium ( Ø É uma ferramenta Open Source usada testar aplicações web pelo browser de forma automatizada. Ø Os testes rodam diretamente a partir do navegador. Ø Selenium Core Sistema de teste baseado em Javascript. Parte do Selenium RC. Ø Selenium RC Modo no qual os testes são dirigidos por uma das linguagens suportadas (Ruby, Python, Java,...) - Teste Funcional Selenium Ø Selenium Core Sistema de teste baseado em Javascript. Parte do Selenium RC. Ø Selenium RC Módulo responsável por controlar navegadores para execução dos testes Ø Selenium IDE Plugin para Firefox que permite gravação e reprodução de testes. - Teste Funcional Selenium Ø Permite gravar ações e obter qualquer informação visível nas telas de um software 1
2 - Teste Funcional Selenium Comandos Ø Open Ø Type Ø Click / ClickAndWait Ø Assert Ø Verify Ø Store/ StoreText Ø Select - Teste Funcional Selenium Comandos Ø Open Ø Type Ø Click / ClickAndWait Ø Assert Ø Verify Ø Store/ StoreText Ø Select - Teste Funcional Demonstração Teste de Aceitação Ø Verifica se o software funciona de acordo com as necessidades do cliente Ø Geralmente feito pela empresa contratante Ø Pode envolver desenvolvedores Teste de Aceitação Ø Acceptance Testing Driven Development (ATDD) Cliente especifica os testes para auxiliar no desenvolvimento do programa Acompanha a implementação do sistema desde o começo Pode acompanhar desenvolvimento de funcionalidades - Teste de Aceitação Conversas com cliente / Coletar Requisitos Escrever testes de aceitação Teste de Aceitação passou!!! falhou!!! Implementar testes de aceitação Aceitação do cliente Eventualmente refatorar Implementar funcionalidade 2
3 - Teste de Aceitação - Teste de Aceitação FitNesse Ø Ferramenta de teste de aceitação Ø Novas páginas facilmente criadas wiki Ø Utiliza tabelas para criação de testes - Teste de Aceitação FitNesse Passos para uso Ø Criar nova página Convenção Camel Case, muito usada em Java» Primeira letra de cada palavra com letras maiúsculas; Definir como página de teste Editar a página, incluindo dados de teste Definir tipo de tabela» Slim» Fit Importar bibliotecas extras - Teste de Aceitação FitNesse Tipos de Tabelas ü Slim Decision Table Query Table Comment ü Fit ColumnFixture ActionFixture SetUpFixture RowFixture Import SummaryFixture - Teste de Aceitação FitNesse Passos para uso Ø Criar Fixture Classe que liga a FitNesse ao sistema sob teste Procedimento de teste Contém procedimentos para manipulação das informações das tabelas - Teste de Aceitação Exemplos Ø Slim DecisionTable Ø FIT ActionFixture 3
4 Teste de Instalação Ø Verifica se a instalação do software no ambiente alvo ocorre corretamente. Ø Necessário para softwares que executam em diferentes plataformas de hardware e software Ex: Imposto de Renda Ø Pode incluir a verificação de todo o procedimento de instalação, que envolve dentre outras coisas, as instruções de instalação Teste de Instalação Ø Práticas Aconselhadas: Sistemas com diversos tipos de usuário, com diferentes configurações de hardware e software precisam desse tipo de teste Idealmente, pessoas sem conhecimento do software a ser instalado deveriam ser selecionadas para a verificação da documentação de instalação Testes Alfa e Beta Ø Antes da liberação de uma versão do produto, pode ser realizado testes com usuários finais na organização desenvolvedora (alfa) ou fora da organização, preferencialmente nas instalações dos usuários finais (beta). Ø Práticas Aconselhadas Teste alfa pode ser combinado com teste de usabilidade, reduzindo custos Mas isso deve ser feito em etapas iniciais, por isso, essa prática deve ser seguida por desenvolvimento baseado em iterações Teste de segurança Ø Verificam o nível de segurança de uma aplicação. Ø Durante o desenvolvimento, muitas brechas podem ter sido deixadas no sistema. O teste de segurança procura identificar tais brechas, para que elas possam ser resolvidas. Teste de segurança Ø 25 erros críticos de segurança ( Teste de segurança Ø Ferramentas de apoio: 4
5 Teste de segurança Ø Ferramentas de teste: Ø Ferramenta para prevenção de ataques Ø Testes realizados a cada vez que um sw é alterado Ø Objetivo: validar modificações feitas mostrar que modificações realizadas não afetaram as partes que não foram modificadas Ø Ou seja: mostrar que o software não regrediu Ø Testar aplicações críticas que devem ser retestadas freqüentemente Ø Testar sw que é alterado constantemente durante o desenvolvimento (por exemplo, Processo Incremental) Ø Testar componentes reutilizáveis para determinar se são adequados para o novo sistema Ø Quando? Durante os testes de integração Durante os testes, após correções Na fase de manutenção (corretiva, adaptativa, perfectiva ou preventiva) Quando há mudanças de plataforma Ø Quando aplicar, no conceito de desenvolvimento Orientado a Objetos: quando uma nova subclasse é criada quando uma super-classe é alterada quando uma classe servidora é alterada quando uma classe é reusada em um novo contexto Ø Modelos de Falhas de Regressão Orientadas a Objetos Ø Programa original = P Ø Programa modificado = P Ø Abordagens: retesta tudo: T = T seletiva: T T Ø qual abordagem usar? P P T T? 5
6 Ø Sejam: T e T cardinalidades de T e T s custo médio de seleção/caso de teste r custo médio de execução/caso de teste Ø se s T < r ( T - T ) regressão seletiva Ø mas se potencial detecção falhas T < T retesta tudo P P T T Ø Retesta tudo Segura Caixa Branca reaplica todos os testes da linha básica Ø Retesta no firewall Segura seleciona casos de testes analisando dependências de código Ø Retesta casos de uso de maior risco Caixa Preta seleciona casos de testes com base em análise de riscos Ø Retesta de acordo com o perfil seleciona casos de teste de acordo com o perfil operacional: retestar as parte mais usadas Ø Retesta no firewall Analisa conjunto de componentes (classes, programas, módulos,...) que devem ser incluídos nos testes de regressão Dependências entre A (delta) e B (inalterado):» B usa A (B é cliente de A)» B é servidor de A» B é subclasse de A» B sobrecarrega A (polimorfismo) Ø Retesta no firewall Ø Retesta no firewall Dependência entre componentes Ø Retesta no firewall Seleção de testes 6
7 Ø Ferramentas Existem muitas, principalmente de caráter acadêmico Muito pouco existe para uso comercial e em um ambiente de produção Práticas Aconselhadas Ø Uma boa estratégia inicial é o uso dos testes de unidade e de integração como testes de regressão Ø Mantenha todos, até que sua execução fique impraticável, por exemplo, por causa do tempo de execução Ø Se isso ocorrer, use alguma técnica de seleção Práticas Aconselhadas Ø Procure usar uma ferramenta de integração contínua! Servidor de Builds Sempre busca por alterações Reporta erros aos interessados» , netsend, sms Verifica padrões de codificação Cria rótulos no ambiente de gestão de configuração Exemplo:» Continuum ( Hudson ( Demonstração: Teste de Regressão Testes de Desempenho e Estresse Ø 3 Cenários comuns: 1: não existe nenhuma ou quase nenhuma preocupação quanto ao desempenho e performance do sistema pois não existe nenhum gargalo aparente. 2: existe uma chocante necessidade de uso em escala extrema e toda a concentração da equipe fica voltada para a capacidade de processamento, prejudicando o andamento das funcionalidades de negócio. 3: existe um equilíbrio entre produzir o software e garantir que suas funcionalidades atendam a demanda esperada. Somente a metodologia, experiência e conhecimento de processos conseguem garantir tal equilíbrio. Testes de Desempenho Ø O teste de desempenho é idealizado para testar o desempenho do software quando executado dentro do contexto de um sistema integrado. Ø É importante definir o contexto, ou seja, descrever o ambiente, no qual o desempenho será medido. Ø Exemplo: Número de usuários simultâneos Configuração da máquina que está sendo utilizada Os atributos relacionados com o desempenho irão variar de sistema para sistema. 7
8 Testes de Desempenho Ø Para executarmos um teste de desempenho devemos seguir os seguintes passos: Definir o contexto no qual o desempenho será medido; Definir, de acordo com os resultados esperados, o que constituirá uma performance aceitável; Executar os testes e avaliar os resultados. Testes de Estresse Ø O teste de estresse é realizado para confrontar os programas com situações anormais. Ø Essencialmente, a pessoa que realiza esse teste pergunta: até que ponto podemos elevar isto até que falhe? Ø O teste de estresse executa o sistema de uma forma que exige recursos de quantidade, freqüência ou volume anormais. Testes de Estresse Ø Exemplos: Entrada de dados podem ser aumentados em uma ordem de magnitude para determinar como as funções de entrada responderão. Os casos de teste que exigem o máximo da memória ou outros recursos podem ser executados. Qualquer outro teste que tente, essencialmente, destruir o programa. Testes de Desempenho e Estresse - Passos Ø Entender melhor o problema Qual é a demanda prevista para usar a solução?» 200 acessos por dia em média. Existe possibilidade de picos? Se sim, qual o pico previsto?» Sim. Podemos chegar a um pico de 100 usuários simultâneos. Qual é o tempo de resposta desejado?» O nível ideal de trabalho é que o usuário não espere mais do que 2 segundos por cada resposta. Os acessos durante o dia vão se concentrar mais em um horário específico?» Sim, 80% devem ocorrer entre as 11:00 e 21:00. Testes de Desempenho e Estresse Ø Entender melhor o problema Existe um nivelamento no acesso durante a semana ou existe um período de maior concentração?» Segundas e terças, acesso baixo, 100 acessos por dia.» Quartas, quintas, médio acesso com 150 acessos por dia.» Sextas e sábados, pico de 300 acessos por dia.» Domingo, 200 por dia. Quanto seu negócio tende a crescer no próximo ano e no ano seguinte dentro do cenário otimista do seu Plano de Negócio?» Pretendemos crescer 15% neste ano e 30% no próximo. O negócio que a solução atende pode apresentar variações extremas e situações atípicas com que grau de freqüência?» 5%. Testes de Desempenho e Estresse Ø Cálculo de volume de dados por entidade 8
9 Testes de Desempenho e Estresse Ø Identificação de cenários atípicos - Exemplos: Em um software de gestão empresarial, as entidades de recursos humanos serão mais acessadas no final e início do mês; Um site de e-commerce pode oferecer uma promoção como nunca fez anteriormente causando um pico não previsto de 10 vezes mais usuários que o previsto; Em uma escola as entidades de matrícula e operação de inclusão são mais acessadas, causando um aumento nos outputs e redução nos inputs do sistema; Uma montadora comete um erro técnico e vende mil carros com defeito e precisa elaborar uma ação de recall que vai demandar muito mais do seu sistema de gestão. Demonstração: Testes de Desempenho e Estresse Projeto do Grupo Apache Utilizado para criação e execução de testes de estresse em aplicações Web. Para utilizar a ferramenta basta: Ø Fazer download: Ø Pasta bin: scripts para inicialização Ø docs: manual HTML Ø extras: arquivos relacionados com a integração com o Ant Ø lib: biliotecas utilizadas Ø printable_docs: manual pronto para impressão /bin/jmeter.bat à Inicia o JMeter Tela Inicial Dois itens principais: Ø Test Plan: agrupa itens que representam a simulação de múltiplos usuários no plano de testes (samplers), além de configuradores e controladores de lógica de execução do teste. Ø WorkBench: área de trabalho para armazenamento temporário de elementos. Os itens associados à este elemento não são considerados como parte do plano de testes. Os elementos dentro da árvore são adicionados de forma ordenada e hierárquica. Determinados elementos são sensíveis à hierarquia e / ou a ordem em que eles se encontram na árvore. Elementos do JMeter 9
10 Elementos do JMeter Usaremos uma aplicação exemplo com apenas 2 casos de uso: Ø Login: autentica usuário no sistema Ø Gestão de Usuários: gerencia dados de usuários Vamos simular o acesso concorrente de 10 usuários e gerar relatórios com os resultados Objetivo do Teste: Ø Medir o tempo médio de resposta de todas as requisições, identificar a página que consome mais tempo. Configurar valores comuns entre as URLs; Ø Criar componentes Config Elements Ø No nosso exemplo, utilizaremos um HTTP Request Defaults Informar o servidor, porta, caminho e tudo que for padrão para os testes a serem criados Exemplo:» Server Name: localhost» Port Number: 8080 Configurar as requisições HTTP Ø Adicionar um Thread Group (responsável pela criação de threads) Ø Cada thread representará 1 usuário Informar o número de threads e o período usado para iniciar tais threads Exemplo:» Number of Threads: 2» Ramp-Up Periodo: 2 Pode-se agendar o teste para outros dias e horários Configurar as requisições HTTP Ø Adicionar elementos do grupo Logic Controller: Once Only Controller: que irá conter requisições que só devem ocorrer 1 vez em um loop por usuário» login Simple Controller: requisições que ocorrem mais de 1 vez por usuário (ex: consultar valor, realizar pesquisa,...)» Exibir lista de usuários Configurar as requisições HTTP Ø Adicionar requisições para cada um dos elementos selecionados 10
11 Definir a forma de apresentação dos resultados Ø Adicionando os Listeners ao plano de testes Testes de Desempenho Ø Práticas Aconselhadas Procure sempre verificar o funcionamento do seu sistema sob circunstâncias anormais Isso pode revelar comportamentos indevidos que podem gerar prejuízos - Teste de Usabilidade Participantes representativos avaliam o grau que um produto se encontra em relação a critérios específicos O teste de usabilidade não é uma pesquisa. É uma avaliação do sistema feita por especialistas, através da observação e análise do comportamento do usuário enquanto ele navega e executa tarefas específicas. São mais eficientes quando implementados como parte do processo de desenvolvimento de um produto - Teste de Usabilidade Os testes podem ser feitos em cada uma das etapas do projeto. Problemas detectados precocemente são corrigidos a um custo muito menor em qualquer aspecto Fornecer um retorno mais rápido para o cliente, que vê o seu pedido tomando forma antes do produto estar necessariamente pronto. - Teste de Usabilidade Avaliações Heurísticas Ø Consiste em os experts em usabilidade realizarem avaliação heurística da interface com base em uma lista pré-determinada de critérios de navegação e usabilidade Ø Cada critério será analisado por cada um dos envolvidos, que julgarão se a interface apresenta problemas em relação àquele critério - Teste de Usabilidade Avaliações Heurísticas Ø Três fatores mostram a gravidade de um problema de usabilidade: Freqüência: quantas vezes ele ocorre na interface? É comum ou é raro? Impacto: ele é fácil ou difícil de ser superado pelos usuários? Persistência: é um problema que afeta os usuários somente uma vez ou é um problema que vai incomodar os usuários repetidas vezes? 11
12 - Teste de Usabilidade Avaliações Heurísticas Ø Avaliação da Severidade 0 = Não é um problema de usabilidade 1 = Problema coméstico apenas 2 = Problema de usabilidade menor. Pode ser corrigido e não precisa ser de grande prioridade 3 = Problema de usabilidade maior. Deveria ser corrijido com alta prioridade 4 = Catástrofe de Usabilidade - Teste de Usabilidade Avaliações Heurísticas Ø 10 Heurísticas de Nielsen ( Visibilidade do status do sistema:» o sistema deveria manter o usuário informado sobre o que está havendo, emitindo feedback dentro de tempos razoáveis. Adequação entre o sistema e o mundo real:» o sistema deveria falar a linguagem do usuário, com palavras, frases e conceitos familiares, ao invés de termos ligados ao desenvolvimento. Seguir convenções aceitas, fazendo as informações aparecerem em ordem lógica e natural. - Teste de Usabilidade Avaliações Heurísticas Ø 10 Heurísticas de Nielsen Controle do usuário e liberdade:» usuários frequentemente erram nas escolhas e precisam de saídas de emergência. Deveriam existir funções similares ao CTRL+Z. Consistência e padrões:» não deveriam existir diferentes palavras e situações que signifiquem a mesma coisa. Prevenção de erros:» melhor que uma boa mensagem é um projeto que impeça o erro. Deveriam ser eliminados condições favoráveis ao erro ou deveriam ser verificadas antes da confirmação da ação. - Teste de Usabilidade Avaliações Heurísticas Ø 10 Heurísticas de Nielsen Reconhecimento ao invés que recordação:» o usuário não deveria ter que lembrar muita coisa entre ações no sistema. Informações deveriam estar sempre visíveis ou facilmente recuperáveis quando necessário. Flexibilidade e eficiência de uso:» prover aceleradores, que sejam utilizados por usuários mais avançados. Permitir que usuários customizem suas ações frequentes. Projeto harmonioso e minimalista:» as janelas devem conter apenas informação relevante. - Teste de Usabilidade Avaliações Heurísticas Ø 10 Heurísticas de Nielsen Ajuda para reconhecer, diagnosticar e recuperar de erros:» as mensagens deveriam ser expressas em linguagem simples, indicar precisamente o problema e sugerir soluções. Ajuda e documentação:» pode ser necessário a existência de ajuda e documentação. Ela deveria ser fácil de pesquisar e focada nas tarefas do usuários, direta e precisa. - Teste de Usabilidade Avaliações Heurísticas x Teste de Usabilidade Ø A avaliação heurística é mais rápida, pois envolve apenas o trabalho interno dos desenvolvedores. Ø Avaliações heurísticas revelam cerca de 80% dos problemas de uma interface Ø Equipe de avaliação nem sempre conseguem abstrair o desconhecimento da ferramenta muitas vezes demonstrado pelo usuário básico. Ø Teste de usabilidade revela cerca de 20% dos problemas de uma interface, mas os piores e mais danosos. 12
13 ü Objetivos do Teste - Teste de Usabilidade ü Objetivos do Teste - Teste de Usabilidade Processo Ambiente Físico Ø É feito utilizando uma amostragem dos próprios futuros usuários do sistema. Ø São selecionados de 3 a 5 participantes representativos de um grupo de usuários do programa. Ø Este grupo é colocado em contato com a interface criada e têm que executar algumas tarefas pré-definidas pela equipe de teste. Ø Todos os passos dos participantes são monitorados e gravados. Ø Em seguida, a equipe de teste faz uma minuciosa entrevista dos participantes ü Objetivos do Teste Teste de Usabilidade Ø Melhor opção é utilizar 2 salas uma reservada aos testes outra reservada à observação Ø Na sala de observação, os observadores assistem, mas não se comunicam diretamente com o avaliador. Ø O som e as imagens são captados pelas câmeras de vídeo e transmitidos diretamente para o monitor de vídeo da sala de observação. ü Objetivos do Teste - Teste de Usabilidade Ambiente Físico Ambiente Físico ü Objetivos do Teste - Teste de Usabilidade Ambiente Físico Ø Através do segundo monitor, moderador observa o desempenho do participante e toma notas. Ø Uma câmera estrategicamente posicionada filma tanto as reações do participante quanto seu caminho percorrido no site. ü Objetivos do Teste - Teste de Usabilidade Resultados Ø As observações da equipe de teste, aliadas às respostas das entrevistas com os participantes, são transformadas em um relatório detalhado, contendo: Ø Descrição e Metodologia do Roteiro do Teste Uma breve descrição explicativas das metas propostas e de como se chegou nelas. Ø Análise do Comportamento dos Participantes Como os participantes se comportaram durante o teste? Sorriam? Faziam cara de sofrimento? Coçavam a cabeça? Perguntavam muito?» Parece bobagem, mas isso é essencial para avaliar o sucesso da interface. Ø Resumos das Entrevistas Pós-Teste As principais opiniões, perguntas, dúvidas, reclamações e sugestões dadas pelos participantes após o teste. 13
14 - Teste de Usabilidade Resultados Ø Problemas de Usabilidade Lista dos problemas de usabilidade encontrados.» Cada problema é tratado detalhadamente, com descrição dos critérios heurísticos que ele viola, seu grau de severidade, o custo para o cliente de não consertar o problema versus o custo de resolvê-lo. Principais Paradas Críticas» Mais do que um simples problema, uma parada crítica é um beco sem saída do sistema. Seja físico (o usuário não tem mais fisicamente aonde ir) ou psicológico (o usuário fica tão confuso e frustrado que simplesmente pára, desiste), as paradas críticas, se existirem, têm que ser tratadas como prioridade absoluta. Plano de Correção» São propostas soluções eficientes e cost-effective para cada problema encontrado. Cada solução é sempre pensada em termos de custo-benefício para o cliente. - Teste de Usabilidade Material para realização do teste Ø Roteiro do Avaliador Ø Questionário para Identificação do Perfil do Participante Ø Script de Orientação Ø Lista de Tarefas Ø Instrumentos para Coleta de Dados Ø Questionário de Avaliação do Sistema pelo Participante Ø Tópicos para Questionamento - Teste de Usabilidade Práticas Aconselhadas Ø A Usabilidade de um sistema pode ser uma ótima estratégia de marketing Ø A Usabilidade exprime parte do contentamento do usuário com o trabalho realizado Ø A realização de testes de usabilidade em etapas iniciais do projeto possibilitam correções mais baratas Ø Esse tipo de teste pode ser realizado em conjunto com testes alfa, reduzindo custos Para isso é necessário uma estratégia de priorização de casos de uso com entrega evolutiva 14