1. A Arte dos Testes de Performance Aplicacional DEV310 Nuno Baptista Rodrigues Novabase nuno.rodrigues@novabase.pt
2. Testes de Performance Aplicacional Objectivos Factos Riscos Factores Críticos de Sucesso Monitorização e Análise de Performance Aplicacional Latência Processamento Utilização Ciclo de Vida dos Projectos de Testes de Performance Aplicacional Conclusões A Arte dos Testes de Performance Aplicacional
3. AssociateManager Soluções Automatizadas QA Testing & QualityAssurance Novabase ISTQB certifiedAdvancedTestManager > 9 Anos Experiência QA Nuno Baptista Rodrigues
8. Ao saber o que significa performance, podemos… Avaliar o risco Tomar decisões fundamentadas Planear para o futuro Dormir descansados na noite anterior à entrada em produção “Thepeaceofmindthatitwillworkongo-livedayalonejustifiesthecostof performance testing” (ScottBarber – ChiefTechnologyOfficerPerfTestplus, Inc) Testes de Performance
9. Que “rapidez” é suficientemente “rápida”? Baseado no contexto dos sistemas, determinar: Perfil psicológico dos utilizadores Características dos sistemas Características de utilização Para Aferir: Expectativas dos utilizadores Limitações de recursos Expectativas dos stakeholders Testes de Performance
10. O que permite a simulação de utilizadores? Permite: Agilizar o processo de utilização e monitorização dos sistemas antes da sua entrada em produção A antecipação do diagnóstico de eventuais problemas Agilizar a geração de carga sobre os sistemas Execução e re-execução de testes de forma mais expedita Testes de Performance
11. O que permite a simulação de utilizadores? Cuidados a ter: Resultados a partir de modelos de teste imprecisos são quase sempre inexactos e frequentemente conduzem a decisões incorrectas A única forma de ter conhecimento sobre a experiência dos utilizadores (tempo de resposta end-to-end) é através da execução de testes que recorram a modelos que envolvam a comunidade de utilizadores reais das aplicações A extrapolação da performance esperada recorrendo a modelos incompletos não resulta Testes de Performance
12. As ferramentas de geração de carga não são perfeitas: Ferramentas de simulação de carga… Não interagem com a vertente cliente das aplicações Não avaliam de forma nativa a pertinência das páginas devolvidas Não controlam condicionantes da navegação Não controlam bem o abandono de transacções Testes de Performance
13. As ferramentas de geração de carga não são perfeitas: Scripting: Record – EDIT – Playback Adicionar a variabilização Adicionar tempos de espera Adicionar lógica condicional Adicionar validações para avaliar o retorno de páginas chave Adicionar funções para controlar as situações de abandono das transacções O scripting não é tão fácil quanto os produtores de ferramentas de testes gostariam de nos fazer crer, nem dão resposta a todas as nossas necessidades! Testes de Performance
14. Gráficos “porreiros”, o que isso significa?!? Porque são tão importantes gráficos simples e claros? A maioria das pessoas nunca vão ler na integra os relatórios de testes de performance A maioria das pessoas não entendem no seu detalhe as várias componentes que compõem a performance Gráficos e quadros impróprios ou confusos podem conduzir a decisões erradas que originam perdas financeiras e arruínam reputações A informação deve ser de fácil e rápida compreensão A esquematização gráfica da informação técnica é crítica para o auxilio da compreensão da mensagem a transmitir Testes de Performance
15. Gráficos “porreiros”, o que isso significa?!? O que necessitam os stakeholders: Respostas… e já! (No entanto podem nem se quer conhecer as perguntas) De perceber a informação de forma intuitiva De explicações simples de informação altamente técnica De se sentirem habilitados a tomar decisões rápidas e de terem em seu poder as informações que suportam essas decisões Palavras chave e frases claras e concisas que possam usar com outros stakeholders Um sumário e uma conclusão, ambos concisos Recomendações e opções Testes de Performance
16. Gráficos “porreiros”, o que isso significa?!? O que recebem normalmente os stakeholders: Descrições técnicas complexas Gráficos técnicos complexos Dados no seu estado mais puro Ou seja, são confundidos! Testes de Performance
17. Gráficos “porreiros”, o que isso significa?!? O que deviam receber os stakeholders: Testes de Performance
18. Será que estamos “tramados”? Factos: A falta de gestão dos testes de performance é muito arriscada A gestão dos testes de performance melhora a aplicação e dá aos stakeholders confiança no go-live A utilização de uma metodologia aumenta a probabilidade de sucesso A definição de requisitos para os testes de performance é difícil, mas essencial Testes de Performance
19. Será que estamos “tramados”? Factos: Requisitos de performance: São obtidos de diferentes fontes Devem ser baseados na realidade Devem ter como foco os utilizadores finais Têm de estar contextualizados Os testes de performance devem simular utilizadores reais para que sejam representativos Testes de Performance
20. Será que estamos “tramados”? Factos: As ferramentas de geração de carga não devem influenciar o desenho dos testes Os resultados nem sempre são o que parecem A curva de degradação de desempenho mostra claramente aos stakeholders o que eles precisam saber O desempenho futuro da aplicação em produção é a nossa herança Testes de Performance
21. Acções para fintarmos o “destino” do insucesso Testes de Performance, para: Iniciar qualquer processo de optimização Executar testes pró activos e preventivos em relação à degradação do desempenho das soluções Permitir a simulação de centenas ou milhares de utilizadores executando transacções comerciais importantes da aplicação (core business) Testes de Performance
22. Acções para fintarmos o “destino” do insucesso Testes de Performance, para: Gestão de desempenho de aplicações distribuídas Auxiliar na determinação da origem e causas de estrangulamentos no desempenho Permitir estimar e planear uma eficaz gestão da capacidade Auxiliar na optimização do desempenho do sistema Auxiliar na garantia do sucesso da disponibilização de aplicações Testes de Performance
23. Testes de Performance “Because acceptable web site performance is application dependent and web site architecture can vary widely from site to site, web site performance analysis can be viewed as more an art than a science.” Microsoft Application and Consulting Engineering (ACE) Team in “Performance Testing Microsoft .NET Web Applications”
25. Em geral, pretende-se medir: A Latência (Latency) O nível de Processamento (Throughput) O grau de Utilização da aplicação (Utilization) Objectivo: Baixa latência Elevado processamento Baixo nível de utilização Monitorização
27. Ruído de Fundo Por vezes é necessário considerar um conjunto de actividades adicionais que reflictam a ocorrência da degradação de performance causada pela rede ou carga de outras aplicações Monitorização
29. Processamento: Número de pedidos do cliente processados pelo sistema dentro de uma unidade de tempo, geralmente segundos De uma perspectiva de marketing, o processamento pode também ser medido em termos de visitas por dia ou acessos à página por dia Parâmetro chave para se determinar quais os requisitos de hardware e de sistema necessários para o bom funcionamento da aplicação Representa um papel muito importante na identificação de rupturas no desempenho dos sistemas Monitorização
31. Utilização: Nível de uso dos diferentes recursos de um sistema, como por exemplo: CPU(s), memória, largura de banda... A utilização normalmente aumenta num grau proporcional ao crescimento do nível de carga A partir de uma determinada carga a utilização estabilizará e permanecerá constante durante a continuação do crescimento da carga Monitorização
37. Testes de Performance: Actividade que exige skills específicos Domínio de processos, normas e standards internacionais Know-How em produtos de suporte Ponto de partida de um processo de optimização Actividade imprescindível para a identificação de eventuais estrangulamentos e as causas da sua origem Actividade de suporte ao processo de gestão de desempenho aplicacional Conclusões