Proibida cópia ou divulgação sem
permissão escrita do CMG Brasil.
Falando de testes de
desempenho
Evandro Grezeli
egrezeli@gmail.com
Maio/2015
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
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
Parte 1:
Teoria e Conceitos
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
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
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;
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]
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.
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)
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!
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;
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...”
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
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
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
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?
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;
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%)
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
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
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.
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
Parte 2:
Caixa de Ferramentas
Teste de Desempenho:
Caixa de Ferramentas
O que ela tem que oferecer?
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
Teste de Desempenho:
Caixa de Ferramentas
O que a comunidade oferece?
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;
Falando de
Testes de Desempenho
Evandro Grezeli
egrezeli@gmail.com
http://br.linkedin.com/pub/evandro-grezeli/6/b88/719/en
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.
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

Cmg falando de testes de desempenho

  • 1.
    Proibida cópia oudivulgação sem permissão escrita do CMG Brasil. Falando de testes de desempenho Evandro Grezeli egrezeli@gmail.com Maio/2015
  • 2.
    Sobre Entusiasta em assuntosque 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: Teoriae 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.
  • 5.
    Teste de Desempenho: CenárioAntigo 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
  • 6.
    Teste de Desempenho: CenárioAtual 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
  • 7.
    Teste de Desempenho: Suaimportâ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;
  • 8.
    Teste de Desempenho: Suaimportâ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]
  • 9.
    Teste de Desempenho: Suaimportâ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.
  • 10.
    Teste de Desempenho: Oconceito 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)
  • 11.
    Teste de Desempenho: Oconceito 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!
  • 12.
    Teste de Desempenho: Oconceito 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;
  • 13.
    Teste de Desempenho: Reconhecimentodo 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...”
  • 14.
    Camada de Apresentação Camada de Aplicação Camadade Banco de Dados Gargalo de desempenho pode estar em qualquer lugar!!! Teste de Desempenho: Reconhecimento do ambiente
  • 15.
    Teste de Desempenho: Tiposde 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
  • 16.
    Teste de Desempenho: Metodologia Definiros 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
  • 17.
    Teste de Desempenho: Metodologia Roteiroinicial 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?
  • 18.
    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;
  • 19.
    Teste de Desempenho: Metodologia Exemplode 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%)
  • 20.
    Teste de Desempenho: Usuáriosvirtuais 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
  • 21.
    Teste de Desempenho: Usuáriosvirtuais 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
  • 22.
    Teste de Desempenho: Tempode 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.
  • 23.
    Teste de Desempenho: Tempode 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
  • 24.
    Parte 2: Caixa deFerramentas
  • 25.
    Teste de Desempenho: Caixade Ferramentas O que ela tem que oferecer?
  • 26.
    Teste de Desempenho: Caixade 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
  • 27.
    Teste de Desempenho: Caixade Ferramentas O que a comunidade oferece?
  • 28.
    Teste de Desempenho: Caixade 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;
  • 29.
    Falando de Testes deDesempenho Evandro Grezeli egrezeli@gmail.com http://br.linkedin.com/pub/evandro-grezeli/6/b88/719/en
  • 30.
    Teste de Desempenho: Parasaber 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.
  • 31.
    Teste de Desempenho: Parasaber 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