A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução ao Teste de Performance (Desempenho)

Apresentações semelhantes


Apresentação em tema: "Introdução ao Teste de Performance (Desempenho)"— Transcrição da apresentação:

1 Introdução ao Teste de Performance (Desempenho)
Giovani Facchini Mestre em Computação Aplicada Engenheiro de Performance (Dell)

2 Por que teste de Desempenho?
Motivação Por que teste de Desempenho? Loading... Error - Server Busy

3 Sumário Motivação O limite da paciência de um usuário
O que é Desempenho? Habilidades necessárias Conceitos de testes de Desempenho Processo (ciclos de projeto) Resultados do Teste Perguntas respondidas Ferramentas Conclusões

4 Limite da paciência 0.1 segundos – instantâneo 
1 segundo – limite do fluxo de pensamentos  10 segundos – limite antes que o usuário comece a fazer tarefas paralelas  > 10 segundos – paraleliza as tarefas (perde a concentração)  Novos estudos (2002) apontam para 4 segundos! [1]"Response Time in Man-Computer Conversational Transactions," R. B. Miller, from the proceedings of the AFIPS Fall Joint Computer Conference, 1968.

5 Limite da paciência Pode causar
- Abandono de websites (não é bom para as empresas que alugam espaço no site, ClickRBS) - Comprar na concorrência (se eu sou um comprador e o site da Dell tem um tempo de resposta de 30 segundos, eu vou comprar meu computador na HP) - Se eu sou o governo e meu site fica indisponível ou muito lento, as pessoas irão entregar o IR no método antigo (papel, disquete, via banco), enquanto via o sistema da receita federal o processamento seria mais simples, rápido e barato.

6 O que é Desempenho? Velocidade: a aplicação responde rápido?
Escalabilidade: quantos usuários suporta? Estabilidade/Disponibilidade: vai falhar sobre carga? com o tempo? Downtime Vazão: Operações por segundo Confiança: usuários terão uma boa experiência Velocidade: Expectativa do usuário – Experiência – Psicologia – Uso Limitações do Sistema – Hardware – Rede – Software Custo – Velocidade pode ser muito cara! Escalabilidade Quantos usuários… – antes de ficar “lento”? – antes de parar de funcionar? – conseguirá manter? – são esperados? – são esperados antes do próximo upgrade? Quantos dados eu consigo armazenar? – Capacidade do Banco de Dados – Capacidade do servidor de arquivos – Capacidade de Backup – Crescimento dos dados Estabilidade O que acontece se... – Tem mais usuários do que esperamos? – todos os usuários fazem a mesma coisa? – um usuário é desconectado? – acontece um ataque de negação de serviço? – o servidor web cai? – são pedidas muitas ordens para a mesma coisa (produto)? Confiança Se você sabe como o desempenho do sistema é… – Você pode medir o risco. – Voce pode tomar decisoes direcionadas. – Você pode planejar para o futuro. – Você pode dormir na noite anterior a colocar o sistema em produção.

7 Habilidades necessárias
Teste Funcional Análise de Negócio Programação e Arquitetura Redes e Protocolos Banco de dados e dados para teste Planejamento e Gerenciamento Análise de resultados e relatórios (estatístico/Matemático) Administração de Hardware e Sistemas Usabilidade e Segurança

8 Habilidades necessárias
Engenheiro de Desempenho é um GENERALISTA Ele entende um pouco de tudo! Todas as camadas da aplicação são importantes, por isso precisam ser conhecidas

9 Conceitos de testes de Desempenho
Validação SLA? Tempo de Resposta? Teste Até onde o sistema aguenta? Qual o comportamento? Engenharia Engloba os outros conceitos e vai além Causa raiz? Como melhorar? Onde está o problema? Testing: Apenas testa e identifica o que está acontecendo (comportamento) Verifica até onde o sistema pode ir Engineering: Vai além do testing Qual a causa raiz do problema? Como concertar e melhorar o desempenho do sistema? É um processo interativo

10 Tipos de testes de Performance
Carga: carga esperada (média) do dia-a-dia Stress: alta carga (pior horário do dia) Longa Duração: carga esperada (identificar vazamento de memória) Pico: pico máximo de utilização

11 Atividades de Performance
Engajamento: Coleta de informações iniciais Para que testar? Quantos usuários? Qual SLA? Quais as transações críticas? Como será o ambiente de produção Plano: Baseado no engajamento, define-se os tipos de testes que ocorrerão Aprofundamento dos requisitos Já existem dados de produção que podem ser utilizados como estimativas? Schedule: Define-se os tempos de cada atividade subsequente Preparação do Código: Scripts automatizados Código que contata EJBs, roda consultas em banco, dispara processos Posta mensagens Simula o comportamento do usuário Preparação de Dados: É necessária a criação de dados? De que tipo? Como criar? Criação antecede o teste... Preparação do Processo de Limpeza: Dados são invalidados depois de utilizados? Precisa-se limpar depois de cada execução? Conjunto de dados é limitado? Preparação do Ambiente: Em que hardware? Configuração de software Configuração de rede Devemos ter um ambiente similar (comparável) ao de produção Execução: Os testes planejados são executados São identificados os gargalos do sistema (DB? SO? Web? App?) Se os SLA não são atingidos ou o tempo de resposta é ruim ou inaceitável para os usuários, corrige-se os gargalos Re-execução e correção (tunning) do sistema são feitos até atingir o resultado esperado Relatórios: Relatórios de utilização esperada de recursos Tempos de resposta dos usuários Principais achados Principais melhorias Monitoramento de Produção: Identificar se o comportamento de produção está dentro do cenário previsto no teste O tempo de resposta está aceitável? Existe alguma camada que está sobre-carregada? Fechamento do Processo: Se não existem problemas em produção, finaliza-se o processo de performance

12 Processo Microsoft

13 Atividades dentro do Processo

14 Resultados do Teste Utilização da infra-estrutura Tempos de resposta
Capacidade de crescimento Comparação entre hardware/software/configuração Relatórios indicam pontos de melhoria

15 Perguntas respondidas
Qual hardware necessário? Qual a configuração necessária? Qual sistema operacional? Qual banco? Podemos crescer? Quanto? Qual o tempo de resposta? Quais são nossos gargalos?

16 Ferramentas Pagas Gratuitas Personalizadas HP – Loadrunner
IBM – Rational Performance Tester Borland – SilkPerformer Gratuitas JMeter OpenSTA WebLoad Personalizadas Faça você mesmo 

17 Conclusões É necessário saber de tudo um pouco
Teste de Desempenho é importante para: Identificar utilização do sistema Verificar tempos de resposta Aperfeiçoar o ambiente/programa Se encaixa dentro do ciclo de testes Existem ferramentas para auxiliar A experiência do usuário (cliente) está intimamente ligada com o teste de desempenho

18 Perguntas??

19 Links Interessantes http://www.perftestplus.com/presentations.htm


Carregar ppt "Introdução ao Teste de Performance (Desempenho)"

Apresentações semelhantes


Anúncios Google