190 likes | 282 Views
Introdução ao Teste de Performance (Desempenho). Giovani Facchini facchini@gmail.com Mestre em Computação Aplicada Engenheiro de Performance (Dell). Motivação. Por que teste de Desempenho?. Loading. Error - Server Busy. Sumário. Motivação O limite da paciência de um usuário
E N D
Introdução ao Teste de Performance (Desempenho) Giovani Facchini facchini@gmail.com Mestre em Computação Aplicada Engenheiro de Performance (Dell)
Motivação Por que teste de Desempenho? Loading... Error - Server Busy
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
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.
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
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
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
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?
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
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
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?
Ferramentas • Pagas • HP – Loadrunner • IBM – Rational Performance Tester • Borland – SilkPerformer • Gratuitas • JMeter • OpenSTA • WebLoad • Personalizadas • Faça você mesmo
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
Links Interessantes • http://www.perftestplus.com/presentations.htm • http://www.loadtester.com/what-makes-good-performance-engineer • http://www.loadtester.com/gone-60-seconds-or-30-or-10 • http://en.wikipedia.org/wiki/Software_performance_testing • http://googletesting.blogspot.com/2007/10/performance-testing.html • http://www.performance-workshop.org/ • http://msdn.microsoft.com/en-us/library/bb924375.aspx