A Arte dos Testes de Performance Aplicacional
Click here to load reader
-
Upload
nuno-baptista-rodrigues -
Category
Career
-
view
1.079 -
download
0
Transcript of A Arte dos Testes de Performance Aplicacional
• 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
• Associate Manager• Soluções Automatizadas QA• Testing & Quality Assurance• Novabase• ISTQB certified Advanced Test
Manager• > 9 Anos Experiência QA
Nuno Baptista Rodrigues
Testes de Performance
• Os Testes de Performance determinam a…
• Velocidade• Escalabilidade• Estabilidade• Fiabilidade
Testes de Performance
• … Enquanto se focam nas• Expectativas dos utilizadores• Restrições do sistema• Custos
Testes de Performance
• Especificamente, respondem às questões:
• Quanto…?• Em que condições…?• O que acontece se…?
Testes de Performance
• 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
“The peace of mind that it will work on go-live day alone justifies the cost of performance testing” (Scott Barber – Chief Technology Officer PerfTestplus, Inc)
Testes de Performance
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• Gráficos “porreiros”, o que isso significa?!?
• O que deviam receber os stakeholders:
Testes de Performance
• 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
• 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
• 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
• 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
• 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
Testes de Performance
“Because acceptable web site performance is applicationdependent and web site architecture can vary widely fromsite to site, web site performance analysis can be viewed as more an art than a science.”
Microsoft Application and Consulting Engineering (ACE) Teamin “Performance Testing Microsoft .NET Web Applications”
Monitorização
• 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
• Latência• Latência Aplicacional (Application Latency)• Latência de Rede (Network Latency)
Monitorização
• 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
• Latência Vs Carga
Monitorização
• 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
• Processamento Vs Carga
Monitorização
• 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
• Utilização Vs Carga
Monitorização
• Latência Vs Utilização
Monitorização
Ciclo de Vida dos Projectos
Ciclo de Vida dos Projectos
Preparação
Produtos de Suporte
Aquisição know-how
Transacções Críticas
Conclusões
• 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
Q & A
A sua opinião é importante!Complete o questionário de avaliação e devolva-o à saida.