A Arte dos Testes de Performance AplicacionalDEV310Nuno Baptista RodriguesNovabasenuno.rodrigues@novabase.pt
Testes de Performance AplicacionalObjectivosFactosRiscosFactores Críticos de SucessoMonitorização e Análise de Performance AplicacionalLatênciaProcessamentoUtilizaçãoCiclo de Vida dos Projectos de Testes de Performance AplicacionalConclusõesA Arte dos Testes de Performance Aplicacional
AssociateManagerSoluções Automatizadas QATesting & QualityAssuranceNovabaseISTQB certifiedAdvancedTestManager> 9 Anos Experiência QANuno Baptista Rodrigues
Testes de Performance
Os Testes de Performance determinam a…VelocidadeEscalabilidadeEstabilidadeFiabilidadeTestes de Performance
… Enquanto se focam nasExpectativas dos utilizadoresRestrições do sistemaCustosTestes 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 riscoTomar decisões fundamentadasPlanear para o futuroDormir descansados na noite anterior à entrada em    produção“Thepeaceofmindthatitwillworkongo-livedayalonejustifiesthecostof performance testing” (ScottBarber – ChiefTechnologyOfficerPerfTestplus, Inc)Testes de Performance
Que “rapidez” é suficientemente “rápida”?Baseado no contexto dos sistemas, determinar:Perfil psicológico dos utilizadoresCaracterísticas dos sistemasCaracterísticas de utilizaçãoPara Aferir:Expectativas dos utilizadoresLimitações de recursosExpectativas dos stakeholdersTestes 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çãoA antecipação do diagnóstico de eventuais problemasAgilizar a geração de carga sobre os sistemasExecução e re-execução de testes de forma mais expeditaTestes 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 incorrectasA ú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çõesA extrapolação da performance esperada recorrendo a modelos incompletos não resultaTestes 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çõesNão avaliam de forma nativa a pertinência das páginas devolvidasNão controlam condicionantes da navegaçãoNão controlam bem o abandono de transacçõesTestes de Performance
As ferramentas de geração de carga não são perfeitas:Scripting:Record – EDIT – PlaybackAdicionar a variabilizaçãoAdicionar tempos de esperaAdicionar lógica condicionalAdicionar validações para avaliar o retorno de páginas chaveAdicionar funções para controlar as situações de abandono das transacçõesO 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 performanceA maioria das pessoas não entendem no seu detalhe as várias componentes que compõem a performanceGráficos e quadros impróprios ou confusos podem conduzir a decisões erradas que originam perdas financeiras e arruínam reputaçõesA informação deve ser de fácil e rápida compreensãoA esquematização gráfica da informação técnica é crítica para o auxilio da compreensão da mensagem a transmitirTestes 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 intuitivaDe explicações simples de informação altamente técnicaDe se sentirem habilitados a tomar decisões rápidas e de terem em seu poder as informações que suportam essas decisõesPalavras chave e frases claras e concisas que possam usar com outros stakeholdersUm sumário e uma conclusão, ambos concisosRecomendações e opçõesTestes de Performance
Gráficos “porreiros”, o que isso significa?!?O que recebem normalmente os stakeholders:Descrições técnicas complexasGráficos técnicos complexosDados no seu estado mais puroOu 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 arriscadaA gestão dos testes de performance melhora a aplicação e dá aos stakeholders confiança no go-liveA utilização de uma metodologia aumenta a probabilidade de sucessoA definição de requisitos para os testes de performance é difícil, mas essencialTestes de Performance
Será que estamos “tramados”?Factos:Requisitos de performance:São obtidos de diferentes fontesDevem ser baseados na realidadeDevem ter como foco os utilizadores finaisTêm de estar contextualizadosOs testes de performance devem simular utilizadores reais para que sejam representativosTestes de Performance
Será que estamos “tramados”?Factos:As ferramentas de geração de carga não devem influenciar o desenho dos testesOs resultados nem sempre são o que parecemA curva de degradação de desempenho mostra claramente aos stakeholders o que eles precisam saberO desempenho futuro da aplicação em produção é a nossa herançaTestes de Performance
Acções para fintarmos o “destino” do insucessoTestes de Performance, para:Iniciar qualquer processo de optimizaçãoExecutar testes pró activos e preventivos em relação à degradação do desempenho das soluçõesPermitir 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 insucessoTestes de Performance, para:Gestão de desempenho de aplicações distribuídasAuxiliar na determinação da origem e causas de estrangulamentos no desempenhoPermitir estimar e planear uma eficaz gestão da capacidadeAuxiliar na optimização do desempenho do sistemaAuxiliar na garantia do sucesso da disponibilização de aplicaçõesTestes 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ênciaElevado processamentoBaixo nível de utilizaçãoMonitorização
LatênciaLatência Aplicacional (ApplicationLatency)Latência de Rede (NetworkLatency)Monitorização
Ruído de FundoPor 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çõesMonitorização
Latência Vs CargaMonitorização
Processamento:Número de pedidos do cliente processados pelo sistema dentro de uma unidade de tempo, geralmente segundosDe uma perspectiva de marketing, o processamento pode também ser medido em termos de visitas por dia ou acessos à página por diaParâmetro chave para se determinar quais os requisitos de hardware e de sistema necessários para o bom funcionamento da aplicaçãoRepresenta um papel muito importante na identificação de rupturas no desempenho dos sistemasMonitorização
Processamento Vs CargaMonitorizaçã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 cargaA partir de uma determinada carga a utilização estabilizará e permanecerá constante durante a continuação do crescimento da cargaMonitorização
Utilização Vs CargaMonitorização
Latência Vs UtilizaçãoMonitorização
Ciclo de Vida dos Projectos
Ciclo de Vida dos Projectos
Conclusões
Testes de Performance:Actividade que exige skills específicosDomínio de processos, normas e standards internacionaisKnow-How em produtos de suportePonto de partida de um processo de optimizaçãoActividade imprescindível para a identificação de eventuais estrangulamentos e as causas da sua origemActividade de suporte ao processo de gestão de desempenho aplicacionalConclusões
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional

A Arte dos Testes de Performance Aplicacional

  • 1.
    A Arte dosTestes de Performance AplicacionalDEV310Nuno Baptista RodriguesNovabasenuno.rodrigues@novabase.pt
  • 2.
    Testes de PerformanceAplicacionalObjectivosFactosRiscosFactores Críticos de SucessoMonitorização e Análise de Performance AplicacionalLatênciaProcessamentoUtilizaçãoCiclo de Vida dos Projectos de Testes de Performance AplicacionalConclusõesA Arte dos Testes de Performance Aplicacional
  • 3.
    AssociateManagerSoluções Automatizadas QATesting& QualityAssuranceNovabaseISTQB certifiedAdvancedTestManager> 9 Anos Experiência QANuno Baptista Rodrigues
  • 4.
  • 5.
    Os Testes dePerformance determinam a…VelocidadeEscalabilidadeEstabilidadeFiabilidadeTestes de Performance
  • 6.
    … Enquanto sefocam nasExpectativas dos utilizadoresRestrições do sistemaCustosTestes de Performance
  • 7.
    Especificamente, respondem àsquestões:Quanto…?Em que condições…?O que acontece se…?Testes de Performance
  • 8.
    Ao saber oque significa performance, podemos…Avaliar o riscoTomar decisões fundamentadasPlanear para o futuroDormir 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 utilizadoresCaracterísticas dos sistemasCaracterísticas de utilizaçãoPara Aferir:Expectativas dos utilizadoresLimitações de recursosExpectativas dos stakeholdersTestes de Performance
  • 10.
    O que permitea simulação de utilizadores?Permite:Agilizar o processo de utilização e monitorização dos sistemas antes da sua entrada em produçãoA antecipação do diagnóstico de eventuais problemasAgilizar a geração de carga sobre os sistemasExecução e re-execução de testes de forma mais expeditaTestes de Performance
  • 11.
    O que permitea 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 incorrectasA ú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çõesA extrapolação da performance esperada recorrendo a modelos incompletos não resultaTestes de Performance
  • 12.
    As ferramentas degeração de carga não são perfeitas:Ferramentas de simulação de carga…Não interagem com a vertente cliente das aplicaçõesNão avaliam de forma nativa a pertinência das páginas devolvidasNão controlam condicionantes da navegaçãoNão controlam bem o abandono de transacçõesTestes de Performance
  • 13.
    As ferramentas degeração de carga não são perfeitas:Scripting:Record – EDIT – PlaybackAdicionar a variabilizaçãoAdicionar tempos de esperaAdicionar lógica condicionalAdicionar validações para avaliar o retorno de páginas chaveAdicionar funções para controlar as situações de abandono das transacçõesO 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”, oque 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 performanceA maioria das pessoas não entendem no seu detalhe as várias componentes que compõem a performanceGráficos e quadros impróprios ou confusos podem conduzir a decisões erradas que originam perdas financeiras e arruínam reputaçõesA informação deve ser de fácil e rápida compreensãoA esquematização gráfica da informação técnica é crítica para o auxilio da compreensão da mensagem a transmitirTestes de Performance
  • 15.
    Gráficos “porreiros”, oque 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 intuitivaDe explicações simples de informação altamente técnicaDe se sentirem habilitados a tomar decisões rápidas e de terem em seu poder as informações que suportam essas decisõesPalavras chave e frases claras e concisas que possam usar com outros stakeholdersUm sumário e uma conclusão, ambos concisosRecomendações e opçõesTestes de Performance
  • 16.
    Gráficos “porreiros”, oque isso significa?!?O que recebem normalmente os stakeholders:Descrições técnicas complexasGráficos técnicos complexosDados no seu estado mais puroOu seja, são confundidos!Testes de Performance
  • 17.
    Gráficos “porreiros”, oque 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 arriscadaA gestão dos testes de performance melhora a aplicação e dá aos stakeholders confiança no go-liveA utilização de uma metodologia aumenta a probabilidade de sucessoA definição de requisitos para os testes de performance é difícil, mas essencialTestes de Performance
  • 19.
    Será que estamos“tramados”?Factos:Requisitos de performance:São obtidos de diferentes fontesDevem ser baseados na realidadeDevem ter como foco os utilizadores finaisTêm de estar contextualizadosOs testes de performance devem simular utilizadores reais para que sejam representativosTestes de Performance
  • 20.
    Será que estamos“tramados”?Factos:As ferramentas de geração de carga não devem influenciar o desenho dos testesOs resultados nem sempre são o que parecemA curva de degradação de desempenho mostra claramente aos stakeholders o que eles precisam saberO desempenho futuro da aplicação em produção é a nossa herançaTestes de Performance
  • 21.
    Acções para fintarmoso “destino” do insucessoTestes de Performance, para:Iniciar qualquer processo de optimizaçãoExecutar testes pró activos e preventivos em relação à degradação do desempenho das soluçõesPermitir 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 fintarmoso “destino” do insucessoTestes de Performance, para:Gestão de desempenho de aplicações distribuídasAuxiliar na determinação da origem e causas de estrangulamentos no desempenhoPermitir estimar e planear uma eficaz gestão da capacidadeAuxiliar na optimização do desempenho do sistemaAuxiliar na garantia do sucesso da disponibilização de aplicaçõesTestes de Performance
  • 23.
    Testes de Performance“Becauseacceptable 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”
  • 24.
  • 25.
    Em geral, pretende-semedir:A Latência (Latency)O nível de Processamento (Throughput)O grau de Utilização da aplicação (Utilization)Objectivo:Baixa latênciaElevado processamentoBaixo nível de utilizaçãoMonitorização
  • 26.
  • 27.
    Ruído de FundoPorvezes é 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çõesMonitorização
  • 28.
  • 29.
    Processamento:Número de pedidosdo cliente processados pelo sistema dentro de uma unidade de tempo, geralmente segundosDe uma perspectiva de marketing, o processamento pode também ser medido em termos de visitas por dia ou acessos à página por diaParâmetro chave para se determinar quais os requisitos de hardware e de sistema necessários para o bom funcionamento da aplicaçãoRepresenta um papel muito importante na identificação de rupturas no desempenho dos sistemasMonitorização
  • 30.
  • 31.
    Utilização:Nível de usodos 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 cargaA partir de uma determinada carga a utilização estabilizará e permanecerá constante durante a continuação do crescimento da cargaMonitorização
  • 32.
  • 33.
  • 34.
    Ciclo de Vidados Projectos
  • 35.
    Ciclo de Vidados Projectos
  • 36.
  • 37.
    Testes de Performance:Actividadeque exige skills específicosDomínio de processos, normas e standards internacionaisKnow-How em produtos de suportePonto de partida de um processo de optimizaçãoActividade imprescindível para a identificação de eventuais estrangulamentos e as causas da sua origemActividade de suporte ao processo de gestão de desempenho aplicacionalConclusões