Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Falando de testes de desempenho

Falando de testes de desempenho

Este artigo tem por objetivo detalhar de uma maneira prática e atualizada os diferentes tipos de teste de desempenho citados na literatura mundial, convergindo com a literatura técnica brasileira. Além disto, também é descrito ao longo deste artigo com detalhes o planejamento, execução e análise dos resultados de um teste de desempenho utilizando de uma das técnicas brevemente explanadas aplicado em uma arquitetura E-commerce hipotética, utilizando uma ferramenta de apoio e a melhor forma de utiliza-la para criar scripts automatizados para este tipo de testes.

Avatar for Evandro Grezeli

Evandro Grezeli

May 18, 2015

More Decks by Evandro Grezeli

Other Decks in Technology

Transcript

  1. Proibida cópia ou divulgação sem permissão escrita do CMG Brasil.

    Falando de testes de desempenho Evandro Grezeli [email protected] Maio/2015
  2. Sobre Entusiasta em assuntos que tangem a desempenho de aplicação

    10 anos de experiência com desenvolvimento de software Java e otimização de sistemas em baixa plataforma Manutenção e desenvolvimento de componentes para o Jmeter Colunista no site http://jmeter.com.br Especialista em capacidade e desempenho na maior companhia de meios de pagamento do Brasil
  3. Agenda Parte 1: Teoria e Conceitos Importância de testes de

    desempenho O conceito do tempo de resposta Reconhecimento do Ambiente Tipos de testes de desempenho Metodologia e Planejamento Parte 2: Caixa de Ferramentas
  4. Teste de Desempenho: Cenário Antigo No passado, a tarefa de

    efetuar testes em software era considerada secundária Os testes eram feitos pelos desenvolvedores Os usuários eram envolvidos para aprovar o resultado dos testes ou para gerar massa de dados
  5. Teste de Desempenho: Cenário Atual Empresas tem visto a atividade

    de testes como prioritária para a maior qualidade de suas aplicações Não testar o software pode gerar perdas financeiras e de imagem irreparáveis Complexidade das aplicações, que estão cada vez mais distribuídas
  6. Teste de Desempenho: Sua importância Newport Group diz: 52% das

    aplicações Web falham ao escalar 60% delas não possuem um ciclo formal de teste de desempenho 25% das que são testadas utilizam alguma ferramenta específica IDC Research diz: Menos do que 20% de aplicações J2EE atendem o SLA esperado em ambiente produtivo;
  7. Teste de Desempenho: Sua importância Processo de avaliar um sistema

    ou um componente de um sistema para verificar se ele satisfaz os requisitos especificados ou identificar diferenças entre resultados esperados e obtidos” . [ANSI/IEEE Standard 729, 1983] Teste de Software é o processo com o intuito de encontrar erros em um programa ou sistema em execução [MYERS, 2004]
  8. Teste de Desempenho: Sua importância Garantir um tempo de resposta

    dentro dos padrões aceitáveis para evitar o abandono do site ou aplicação em função de tempos de respostas inaceitáveis. Garantir o uptime (alta disponibilidade) de aplicações e serviços de missão crítica. Evitar o fracasso dos projetos em virtude de problemas de desempenho e escalabilidade. Garantir os investimentos de TI por meio de previsão da escalabilidade e performance da aplicação.
  9. Teste de Desempenho: O conceito do tempo de resposta Mas

    afinal, o que é o tempo de resposta??? Tempo da rede Tempo do Serviço Latência Tempo da transmissão Tempo do Hardware Tempo da Aplicação CPU Disco LAN CPU Disco LAN Tempo de resposta Daniel A. MEnsacé, Virgilio A. F. Almeida: Planejamento de Capacidade para serviços na Web: Métricas, modelos e métodos. (2003)
  10. Teste de Desempenho: O conceito do tempo de resposta Conceitos

    diferentes de tempo de resposta ao longo dos anos Fonte Response time in man-computer conversational transactions, Miller, R. B. (1968) Zona Research, 1999: 8-Seconds rule, através de estatísticas aponta um estudo de tempo de desistência do usuário Fonte How Fast does a website need to be? Scott Barber, 2004 Akamai, 09/2009: 47% das pessoas esperam que uma página na internet abra em até 2 segundos, 40% abandona a página caso não abra em até 3 segundos NÃO HÁ UM CONSENSO!
  11. Teste de Desempenho: O conceito do tempo de resposta Maneira

    mais efetiva de definir o que é um bom tempo de resposta é medindo o throughput esperado. Throughput: Medida de trabalho com sucesso(processado) por unidade de tempo Exemplos: • Quantidade de clientes por minuto; • Quantidade de páginas abertas por segundo; • Quantidade de bytes transferidos entre o servidor e o cliente por segundo; • Quantidade de requisições processadas pelo servidor por segundo;
  12. Teste de Desempenho: Reconhecimento do ambiente Mapear o ambiente a

    ser testado auxilia a identificar:  Potencias pontos de gargalos;  “Áreas cegas”  Caminho complete da transação (estrutura) “É bem simples, uma camada de apresentação, processa na aplicação e persiste no banco de dados...”
  13. Camada de Apresentação Camada de Aplicação Camada de Banco de

    Dados Gargalo de desempenho pode estar em qualquer lugar!!! Teste de Desempenho: Reconhecimento do ambiente
  14. Teste de Desempenho: Tipos de testes Levar até o limite

    a infraestrutura e ou o sistema Teste de Stress Executar uma carga constante conhecida para avaliar infraestrutura e ou sistema Teste de Carga Executar uma carga muitas vezes maior do que a média e em pequeno espaços de tempo Teste de Pico Executar uma carga constante conhecida por um período maior do que o habitual Endurance test Levar até o limite uma única camada da aplicação, medindo sua vazão e seu tempo de resposta Component test TESTE DE DESEMPENHO
  15. Teste de Desempenho: Metodologia Definir os objetivos do teste Entender

    o ambiente Especificar o plano de teste Definir a carga de trabalho do teste Configurar o ambiente de teste Executar os testes Analisar os resultados do teste
  16. Teste de Desempenho: Metodologia Roteiro inicial de Perguntas a se

    pensar: 1)Qual a quantidade de usuários concorrentes esperados em situações normais e de pico? 2)Quais são as páginas mais visitadas ou tarefas comumente realizadas pelos usuários? 3)Qual o tempo de resposta aceitável para tais tarefas em situações normais e de pico? 4)Qual a carga de usuários máxima aceitável antes que o tempo de resposta degrade a um ponto inaceitável?
  17. Teste de Desempenho: Metodologia Workload (também conhecido como session, activity

    profile ou Web Site Usage Signature) determina como os usuários utilizam a aplicação. Por meio do workload, podemos obter o seguinte tipo de informação a respeito da utilização da aplicação:  O tipo de páginas visitadas;  O tempo gasto em cada página;  Os caminhos percorridos pelos usuários;  Percentual de abandono da aplicação;
  18. Teste de Desempenho: Metodologia Exemplo de definição de workload para

    um cenário de teste HomePage Pesquisa por nome (30%) Pesquisa por best seller (50%) Pesquisa por ficção (20%) Ajuda (10%) Review (25%) Enquete (5%) Compra (75%) Sair (25%)
  19. Teste de Desempenho: Usuários virtuais Realizar um teste de desempenho

    com usuários reais  Difícil de coordenar  Atividades não são repetítiveis  Suscetíveis a erros  Não escalável  Exige espaçao e infra-estrutura  Relatórios/Métricas não são confiáveis Testadores de Verdade
  20. Teste de Desempenho: Usuários virtuais Realizar um teste de desempenho

    com ferramentas específicas  Fácil de coordenar  Atividades são repetítiveis  Error-Free  Escalável  Não Exige espaçao e infra-estrutura*  Relatórios/Métricas são confiáveis Virtual Users
  21. Teste de Desempenho: Tempo de pensar User Sleep Time (think

    time) faz os Virtual Users se comportarem como se fossem usuários reais. Por meio do User Sleep time, são injetados atrasos e paradas variáveis nos testes para simular cargas de utilização mais realistas.
  22. Teste de Desempenho: Tempo de pensar Durante a definição do

    User Sleep Time, devemos considerar que, mesmo os usuários reais navegam com maior ou menor velocidade de acordo com a sua familiaridade com o site. Usuário Lento Servidor Usuário Rápido
  23. Teste de Desempenho: Caixa de Ferramentas O que o Mercado

    oferece? Critérios Gartner: Gerenciamento de testes, criação de testes automatizados para desempenho, automação de testes funcionais e de regressão
  24. Teste de Desempenho: Caixa de Ferramentas Qual é a melhor

    para mim?  Entender a necessidade do atual cenário;  Existirá evolução no processo de testes;  Calendário anual de testes;  Tempo x Esforço;  Orçamento para demandas;
  25. Teste de Desempenho: Para saber mais... Referência bibliográficas: Myers, Glenford

    J. The Art of Software Testing. 2ª ed. New Jersey: John Wiley & Sons Inc, 2004. Bartié, Alexandre. Garantia de Qualidade de Software. 3ª ed. São Paulo: Campus, 2002. Pressman, Roger S. Engenharia de Software. 6ª ed. São Paulo: Pearson Makron Books, 2005. Menascé, Daniel A., Almeida, Virgilio A. F. Planejamento de Capacidade para serviços na Web: Métricas, modelos e métodos. São Paulo: Campus Elsevier, 2003. Miller, Robert B. Response time in man-computer conversational transactions. New York: International Business Machine Corporation, in press. Almeida, Virgilio, Menascé, Daniel A., Dowdy, Larry W. Performance by Design: Computer Capacity Planning by Example. New Jersey: Prentice Hall, 2004. Meier, J. D. et al. Performance Testing Guidance for Web Applications. Redmond: Microsoft Press, 2007.
  26. Teste de Desempenho: Para saber mais... Referência web: Jmeter BR

    http://www.jmeter.com.br Performance Project Planning http://www.wilsonmar.com/perfplan.aspx Memory leaks in enterprise java applications http://www.javaworld.com/javaworld/jw-03-2006/jw-0313-leak.html Introducing Microsoft Web Application Stress Tool http://www1bpt.bridgeport.edu/sed/projects/cs597/Fall_2002/jishah/web_application_stress.htm Load testing web applications using microsoft web application stress tool http://www.west-wind.com/presentations/webstress/webstress.htm FAQ – Performance & Load Testing http://www.sqaforums.com/showflat.php?Cat=0&Number=41861&an=0&page=0 User Experience, not metrics http://www.ibm.com/developerworks/rational/library/4228.html Top 25+ Reasons Web Applications don’t scale http://whitepapers.techrepublic.com.com/abstract.aspx?docid=38871