Giovani Facchini [email protected] Mestre em Computação Aplicada Engenheiro de Performance (Dell) Por que teste de Desempenho? Loading... Error - Server Busy 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 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. 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 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 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 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? 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 Utilização da infra-estrutura Tempos de resposta Capacidade de crescimento Comparação entre hardware/software/configuração Relatórios indicam pontos de melhoria 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? Pagas HP – Loadrunner IBM – Rational Performance Tester Borland – SilkPerformer Gratuitas JMeter OpenSTA WebLoad Personalizadas Faça você mesmo É 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 http://www.perftestplus.com/presentations.htm http://www.loadtester.com/what-makes-goodperformance-engineer http://www.loadtester.com/gone-60-secondsor-30-or-10 http://en.wikipedia.org/wiki/Software_performa nce_testing http://googletesting.blogspot.com/2007/10/perf ormance-testing.html http://www.performance-workshop.org/ http://msdn.microsoft.com/enus/library/bb924375.aspx