31
Proibida cópia ou divulgação sem permissão escrita do CMG Brasil. Falando de testes de desempenho Evandro Grezeli [email protected] Maio/2015

Falando de Testes de Desempenho - por Evandro Grezeli

Embed Size (px)

Citation preview

Page 1: Falando de Testes de Desempenho - por Evandro Grezeli

Proibida cópia ou divulgação sem

permissão escrita do CMG Brasil.

Falando de testes de

desempenho

Evandro Grezeli

[email protected]

Maio/2015

Page 2: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 3: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 4: Falando de Testes de Desempenho - por Evandro Grezeli

Parte 1:

Teoria e Conceitos

Page 5: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 6: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 7: Falando de Testes de Desempenho - por Evandro Grezeli

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;

Page 8: Falando de Testes de Desempenho - por Evandro Grezeli

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]

Page 9: Falando de Testes de Desempenho - por Evandro Grezeli

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.

Page 10: Falando de Testes de Desempenho - por Evandro Grezeli

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)

Page 11: Falando de Testes de Desempenho - por Evandro Grezeli

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!

Page 12: Falando de Testes de Desempenho - por Evandro Grezeli

Teste de Desempenho: O conceito do tempo de resposta

Maneira mais efetiva de definir o que é um bom tempo de resposta é

entender o que é esperado pelo cliente final.

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;

Page 13: Falando de Testes de Desempenho - por Evandro Grezeli

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...”

Page 14: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 15: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 16: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 17: Falando de Testes de Desempenho - por Evandro Grezeli

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?

Page 18: Falando de Testes de Desempenho - por Evandro Grezeli

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;

Page 19: Falando de Testes de Desempenho - por Evandro Grezeli

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%)

Page 20: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 21: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 22: Falando de Testes de Desempenho - por Evandro Grezeli

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.

Page 23: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 24: Falando de Testes de Desempenho - por Evandro Grezeli

Parte 2:

Caixa de Ferramentas

Page 25: Falando de Testes de Desempenho - por Evandro Grezeli

Teste de Desempenho: Caixa de Ferramentas

O que ela tem que oferecer?

Page 26: Falando de Testes de Desempenho - por Evandro Grezeli

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

Page 27: Falando de Testes de Desempenho - por Evandro Grezeli

Teste de Desempenho: Caixa de Ferramentas

O que a comunidade oferece?

Page 28: Falando de Testes de Desempenho - por Evandro Grezeli

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;

Page 29: Falando de Testes de Desempenho - por Evandro Grezeli

Falando de

Testes de Desempenho

Evandro Grezeli

[email protected] http://br.linkedin.com/pub/evandro-grezeli/6/b88/719/en

Page 30: Falando de Testes de Desempenho - por Evandro Grezeli

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.

Page 31: Falando de Testes de Desempenho - por Evandro Grezeli

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