Métricas de testes de desempenho: o que medir e por quê

Tempo médio de resposta, desvio padrão e p90, p95 e p99 são métricas essenciais de testes de desempenho. Saiba o que esses números realmente indicam.

Imagem ilustrativa: 3 métricas essenciais de testes de desempenho que todo testador deve conhecer

E se o maior risco nos testes de desempenho estiver na forma como as equipes leem os números, e não no código? Métricas que parecem boas no papel ainda podem esconder lentidão, gargalos e frustração dos usuários, pois definem como as pessoas vivenciam seu sistema e afetam os usuários.

Os problemas começam quando a equipe de desenvolvimento não compreende plenamente o que cada métrica mostra. Surgem conclusões erradas, levando à degradação do desempenho em vez de um desempenho consistente.

Interprete suas métricas incorretamente e a estabilidade será uma ilusão: os usuários enfrentam atrasos significativos antes mesmo que as equipes percebam o que está acontecendo.

Este artigo detalha o tempo médio de resposta, o desvio padrão e os percentis 90, 95 e 99, mostrando por que essas métricas são importantes para um crescimento confiável. Exploramos também métricas adicionais que oferecem uma visão mais completa do desempenho do sistema.

Você só tem uma chance de apresentar um bom desempenho. Conforme os sistemas crescem, interpretar bem as métricas de desempenho é apenas parte do desafio. Nossos serviços de testes de desempenho ajudam você a detectar gargalos cedo e validar o comportamento do sistema antes que os usuários sejam afetados.

A importância de analisar dados em gráficos

A primeira vez que pensamos nesse assunto foi durante um curso que Scott Barber ministrou em 2008 (quando estávamos começando a Abstracta), em sua visita ao Uruguai. Ele nos mostrou uma tabela com valores como estes:

Gráfico de dados de testes de desempenho

Ele perguntou qual conjunto de dados acreditávamos ter o melhor desempenho, algo que não é tão fácil de identificar quanto quando os dados são apresentados em um gráfico:

Métricas de testes de desempenho: conjunto de dados A

No conjunto A, é possível perceber um pico, seguido de recuperação.

Métricas de testes de desempenho: conjunto de dados B

No conjunto B, parece que o sistema começou com um tempo de resposta muito ruim e, provavelmente após 20 segundos de testes, entrou em colapso e passou a responder com uma página de erro, que então era retornada em um segundo.

Métricas de testes de desempenho: conjunto de dados C

No conjunto C, fica claro que, conforme o tempo passava, o desempenho do sistema continuava a piorar.

O objetivo de Barber com esse exercício era mostrar que é muito mais fácil analisar informações quando elas são apresentadas em um gráfico. Além disso, na tabela as informações estão resumidas, mas nos gráficos é possível ver todos os pontos. Assim, com mais pontos de dados, conseguimos uma visão mais clara do que está acontecendo.

Tem interesse em análise de dados? Continue aprendendo aqui: Observabilidade de dados: o que é e por que importa.

Entendendo as principais métricas de testes de desempenho

Imagem ilustrativa: entendendo as principais métricas de testes de desempenho

Agora, vamos ver o que significa cada métrica de testes de desempenho como parte essencial do processo de testes. Avaliar indicadores-chave de desempenho ajuda a confirmar que seus testes estão alinhados aos objetivos de negócio.

Tempo médio de resposta

O tempo médio de resposta é o tempo que um sistema leva, em média, para responder a uma requisição durante os testes de desempenho. Para calcular a média, some todos os valores das amostras e divida o resultado pela quantidade de amostras.

Digamos que façamos isso e o tempo médio de resposta no pico seja de 3 segundos. O problema é que, à primeira vista, isso transmite a falsa sensação de que todos os tempos de resposta estão em torno de três segundos, alguns um pouco acima e outros um pouco abaixo, mas talvez esse não seja o caso.

Imagine três amostras: as duas primeiras com tempo de resposta de um segundo e a terceira com sete:

1 + 1 + 7 = 9

9/3 = 3

Este exemplo simples mostra que três valores muito diferentes podem resultar em uma média de três, embora os valores individuais possam estar longe de 3.

Fabian Baptista, cofundador e Chief Innovation Officer da Abstracta, fez um comentário bem-humorado sobre isso:

“Se eu colocasse uma mão em um balde de água a -100 graus Fahrenheit e a outra em um balde de lava ardente, em média, a temperatura das minhas mãos estaria boa, mas eu perderia as duas mãos.”

Ao analisar o tempo médio de resposta, é possível obter um resultado dentro do nível aceitável, mas tenha cuidado com as conclusões.

Por isso, não é recomendado definir acordos de nível de serviço (SLAs) usando médias; prefira algo como “O serviço deve responder em menos de 1 segundo em 99% dos casos.” Veremos mais sobre isso adiante com a métrica de percentil.

Não perca este episódio do Quality Sense Podcast sobre por que a observabilidade é tão relevante nos testes de software, com Federico Toledo e Lisa Crispin.

Desvio padrão

O desvio padrão é uma métrica de testes de desempenho que mostra quanto os tempos de resposta variam em torno da média. Se seu valor é pequeno, isso indica que os valores das amostras estão próximos da média; se é grande, estão mais distantes e apresentam uma faixa mais ampla.

Para entender como interpretar esse valor, vamos ver alguns exemplos.

Se todos os valores são iguais, o desvio padrão é 0. Se os valores são muito dispersos, por exemplo, em 9 amostras com valores de 1 a 9 (1, 2, 3, 4, 5, 6, 7, 8, 9), o desvio padrão é ~ 2,6 (você pode usar esta calculadora online para calculá-lo).

Embora a média como métrica possa ser muito melhorada ao incluir o desvio padrão, os valores de percentis são ainda mais úteis.

Entender as principais métricas de testes de desempenho é o primeiro passo. Vamos aplicá-las juntos para gerar valor de negócio mensurável.

Percentis: p90, p95 e p99

Imagem ilustrativa: percentis p90, p95 e p99

Percentis em testes de desempenho são métricas que mostram o valor abaixo do qual se encontra uma determinada porcentagem dos tempos de resposta.

Entendê-los é fundamental para uma análise precisa durante a execução dos testes, pois refletem como os sistemas se comportam quando muitos usuários interagem simultaneamente. Percentis revelam o desempenho sob cargas variadas, ajudando as equipes a identificar gargalos e otimizar a alocação de recursos.

Vamos detalhar o significado de percentis como o 90º percentil (p90), p95 e p99 e como usá-los de forma eficaz nos testes de desempenho.

O que são percentis?

Um percentil é uma métrica de testes de desempenho que mostra o valor abaixo do qual se encontra uma determinada porcentagem dos resultados. Ele revela como os tempos de resposta se distribuem entre todas as amostras. A classificação percentílica é outra métrica que indica a posição relativa de um determinado valor nessa distribuição.

O 90º percentil (p90)

O 90º percentil (p90) indica que 90% dos valores da amostra estão abaixo desse limite, enquanto os 10% restantes estão acima. Isso é útil para identificar a maioria das experiências dos usuários e favorecer tempos de resposta aceitáveis para a maioria deles.

O 95º percentil (p95)

O 95º percentil (p95) mostra que 95% dos valores da amostra ficam abaixo desse limite, com apenas 5% acima. Isso oferece uma medida mais rigorosa do desempenho, permitindo uma boa experiência para quase todos os usuários.

O 99º percentil (p99)

O 99º percentil (p99) representa o valor abaixo do qual se encontra 99% da amostra, deixando apenas 1% como valores atípicos. Isso é especialmente útil para identificar valores atípicos e permitir que até os piores cenários estejam dentro de limites aceitáveis.

Por que usar vários percentis?

Analisar vários valores de percentis, como p90, p95 e p99, oferece uma visão mais detalhada do desempenho do sistema. Ferramentas como JMeter e Gatling os incluem em relatórios detalhados, permitindo que as equipes calculem valores de percentis por métodos diferentes.

Essa abordagem abrangente ajuda a identificar gargalos de desempenho e entender como o sistema se comporta em diferentes condições. Pode revelar também se os problemas estão ligados ao processamento do backend, a picos de tráfego ou à latência da rede.

Complementando percentis com métricas de mínimo, máximo e mediana

Os percentis oferecem mais contexto quando combinados com métricas como valores mínimos, máximos e mediana. Por exemplo:

  • p100 (máximo): o maior valor observado, pois 100% dos dados estão nesse ponto ou abaixo dele.
  • p50 (mediana): o valor central, com metade dos dados abaixo e metade acima.

Estabelecendo critérios de aceitação

As equipes costumam usar percentis para estabelecer critérios de aceitação de desempenho. Por exemplo, exigir que 90% da amostra fique abaixo de um determinado valor ajuda a excluir valores atípicos e permitir um desempenho consistente do sistema. Isso é especialmente útil para identificar problemas de utilização de memória e outros aspectos críticos de desempenho.

Ao focar nos valores de percentis, as equipes podem tomar decisões mais fundamentadas e otimizar seus testes de desempenho, especialmente quando a análise faz parte de práticas mais amplas de testes automatizados.

Você lidera uma organização em crescimento? Transforme dados complexos de desempenho em insights de negócio. Conte com nossa parceria em serviços de testes de desempenho!

Além das métricas centrais: insights sobre backend, frontend e comportamento do sistema

Infográfico sobre insights de backend, frontend e comportamento do sistema

Embora o tempo médio de resposta, o desvio padrão e os percentis sejam métricas fundamentais para entender o desempenho geral do sistema, oferecem uma visão de alto nível que nem sempre revela as causas dos problemas.

Diferentemente dos testes funcionais, os testes de desempenho examinam como um sistema se comporta sob carga, estresse e uso contínuo.

Para aprofundar a análise, é importante observar métricas adicionais de backend, frontend e comportamento geral do sistema. Para confiabilidade de longo prazo, incorporar testes de resistência ajuda a avaliar o desempenho sob carga sustentada. Vamos explorar essas métricas essenciais.

O que são métricas de backend?

Métricas de backend são medidas de testes de desempenho focadas na infraestrutura do servidor, incluindo servidor web, servidores de aplicações, bancos de dados e serviços de apoio. Elas mostram como as requisições são processadas, os recursos gerenciados e se o sistema mantém a eficiência sob carga.

Principais métricas de backend

  • Uso de CPU: acompanha quanto poder de processamento o servidor utiliza. Um uso elevado de CPU durante picos de carga pode indicar gargalos que precisam ser resolvidos.
  • Uso de memória: monitora quanta memória o servidor consome, ajudando a identificar ineficiências, consumo excessivo ou possíveis sobrecargas.
  • Vazão: mede o número de requisições que o servidor pode processar em um período específico, ajudando a validar se o sistema consegue escalar para atender à demanda crescente dos usuários. Torna-se mais significativa quando analisada junto ao total de requisições geradas durante o teste.

Métricas de backend como utilização de CPU e uso de memória, que são métricas centrais de utilização de recursos, oferecem insights sobre a eficiência com que o servidor usa seus recursos.

Acompanhar problemas como tempos de resposta lentos pode revelar atrasos causados por consultas a bancos de dados, chamadas de API ou outros processos de backend. Da mesma forma, monitorar requisições com falha é essencial para identificar erros críticos que podem prejudicar a capacidade do sistema de processar ações dos usuários com eficácia.

O que são métricas de frontend?

Métricas de frontend são medidas de testes de desempenho focadas no lado do cliente. Mostram a velocidade de carregamento e resposta da interface, ajudando a melhorar o desempenho do site e oferecer uma experiência do usuário fluida.

Principais métricas de frontend

  • Speed Index: avalia a velocidade de renderização das partes visíveis de uma página web, oferecendo um indicador claro do desempenho percebido.
  • Tempo até o primeiro byte (TTFB): avalia o tempo que o navegador leva para receber o primeiro byte de dados do servidor, o que pode destacar atrasos na resposta do servidor.
  • Tempo de carregamento da página: monitora o tempo total para uma página carregar completamente, incluindo recursos como imagens, scripts e folhas de estilo.

Analisar o processo de carregamento ajuda a identificar atrasos que podem afetar significativamente a experiência do usuário e ter efeito direto na satisfação do cliente. Por exemplo, garantir que uma página carregue por completo sem interrupções é fundamental para uma experiência fluida. Ao focar nas métricas de testes de desempenho do lado do cliente, as equipes podem identificar problemas como renderização lenta ou execução excessiva de JavaScript que podem prejudicar a experiência do usuário.

O que são métricas de comportamento do sistema?

Métricas de comportamento do sistema analisam como todo o sistema reage sob diferentes condições, como tráfego intenso ou uso prolongado. Oferecem uma visão integral do desempenho e ajudam a identificar padrões que podem levar a problemas.

Principais métricas de comportamento do sistema

  • Requisições por segundo: quantifica o número de requisições que o sistema pode processar, ajudando a avaliar sua capacidade sob cargas variadas.
  • Taxa de erros: acompanha a porcentagem de requisições com falha, essencial para identificar problemas que podem prejudicar o funcionamento do sistema.
  • Latência: calcula o tempo que uma requisição leva para ir do cliente ao servidor e voltar, oferecendo insights sobre possíveis atrasos no sistema.

Analisar padrões de tráfego dos usuários ajuda as equipes a entender como diferentes níveis de carga afetam o sistema, permitindo melhor planejamento de capacidade e alocação de recursos. Identificar problemas como vazamentos de memória também é fundamental para manter a estabilidade de longo prazo, pois podem levar à degradação do desempenho com o tempo.

Ao combinar métricas de backend, frontend e comportamento do sistema com métricas centrais como tempo médio de resposta, desvio padrão e percentis, você pode entender mais profundamente o desempenho do seu sistema. Ao analisá-las, é importante considerar alguns pontos para evitar erros comuns de interpretação. Vamos explorá-los na próxima seção.

A indisponibilidade custa caro, e empresas em crescimento não podem ter pontos cegos. Proteja seu crescimento: aja sobre as métricas de desempenho hoje! Conte com nossa parceria para construir confiabilidade em escala.

Cuidado com as métricas de testes de desempenho

Imagem ilustrativa: cuidado com as métricas de testes de desempenho

Antes de executar testes ou analisar os próximos resultados de testes de desempenho de software, lembre-se destes pontos essenciais:

1. Evite médias

Nunca considere a média como “o” valor ao qual prestar atenção, pois pode enganar e esconder informações importantes.

2. Verifique o desvio padrão

Considere o desvio padrão para saber quão útil é a média: quanto maior o desvio padrão, menos significativa ela é.

3. Use valores de percentis

Observe os valores de percentis e defina critérios de aceitação com base neles, lembrando que, ao escolher o 90º percentil, você basicamente diz: “É aceitável que 10% dos meus usuários tenham tempos de resposta ruins”.

Se você tem interesse em conhecer as melhores práticas de testes de desempenho contínuos para melhorar o desempenho do seu sistema, convidamos você a ler este artigo.

4. Saúde geral do sistema

Entender métricas como a capacidade de CPU do servidor utilizada e o uso de memória é uma parte essencial do monitoramento de desempenho e oferece insights sobre a eficiência do processamento de requisições.

Quais outros pontos e problemas você considera ao analisar métricas de testes de desempenho? Conte para a gente!

Procura uma ferramenta gratuita de testes de carga e desempenho? Conheça o JMeter DSL, uma das principais ferramentas open-source de testes de desempenho para desenvolvedores Java e .NET.

Ilustração de uma pessoa em um notebook colocando uma peça de xadrez na tela e segurando um ícone de nós conectados, representando estratégia e tomada de decisão criteriosa. Seção de perguntas frequentes sobre métricas de testes de desempenho.

Perguntas frequentes sobre métricas de testes de desempenho

Quais são as quatro métricas de desempenho?

As quatro principais métricas de desempenho são tempo médio de resposta, desvio padrão, tempos de resposta por percentil e taxa de erros. Elas oferecem uma base sólida, embora a análise de desempenho geralmente inclua métricas adicionais.

Quais são cinco exemplos de métricas para medir desempenho?

Cinco exemplos comuns de métricas para medir desempenho são tempo médio de resposta, tempo de resposta p95, vazão, taxa de erros e utilização de recursos. Geralmente, elas são combinadas com outras métricas para aprofundar a análise.

Quais são as cinco métricas mais importantes para o desempenho de produtos?

As cinco métricas mais importantes para o desempenho de produtos usados pelos usuários incluem tempo de resposta p95, disponibilidade, taxa de erros, tempo de carregamento da página e estabilidade visual. Elas refletem como os usuários percebem o desempenho.

O que significa o 95º percentil nos testes de desempenho?

Nos testes de desempenho, o 95º percentil reflete o ponto de degradação de desempenho no qual os tempos de resposta médio, mínimo e máximo mostram valores atípicos. Ele destaca riscos potenciais em horários de pico e se alinha a referências de desempenho para estabelecer medidas precisas para otimização.

O que é P99 nos testes de desempenho?

P99 representa o limite usado para identificar gargalos quando usuários virtuais testam a capacidade do sistema de atender a usuários simultâneos em escala. É frequentemente aplicado nos testes de escalabilidade para validar o comportamento do sistema sob o maior número de condições e nos testes de volume.

Quais são as categorias comuns de métricas de desempenho?

As categorias de métricas de desempenho incluem uso de memória, utilização de memória e vazamentos de memória como métricas do servidor, combinadas com métricas do cliente e de testes de software. Essas classificações descrevem o comportamento do sistema e destacam métricas essenciais para avaliar o software em diferentes condições operacionais.

Quais métricas do servidor melhor preveem problemas de escalabilidade?

Métricas do servidor, como utilização de CPU, poder de processamento e infraestrutura do servidor, ajudam a prever problemas de escalabilidade, acompanhando o uso elevado de CPU e a utilização geral de recursos. Monitorar o processamento de requisições revela a degradação do desempenho e melhora a confiabilidade do sistema sob cargas maiores.

Como se comparam métricas do cliente como TTFB e Speed Index?

Métricas do cliente como TTFB e Speed Index são comparadas pelo que medem: TTFB reflete o tempo de resposta do servidor, enquanto Speed Index mostra a velocidade de carregamento do conteúdo visível. Ambas destacam atrasos, como tempos de resposta lentos, e afetam o desempenho percebido que contribui para uma experiência do usuário fluida.

Como calcular a taxa de erros e quais limites usar?

A taxa de erros é calculada dividindo as requisições ou transações com falha pelo total de requisições processadas, medindo o desempenho do sistema em condições variadas. Os limites são ajustados para melhorar a eficiência e ajudar o software a funcionar com confiabilidade durante a execução dos testes em um ambiente consistente.

Como agentes de IA podem apoiar testes de desempenho?

Agentes de IA podem aprimorar testes de desempenho eficazes ao analisar cenários de teste, execução e métricas de testes de carga para fornecer insights acionáveis em escala corporativa. Ajudam engenheiros de desempenho a identificar gargalos, alinhar a capacidade do sistema aos objetivos de negócio e apoiar o crescimento fluido de sistemas corporativos. Conheça nossos serviços de desenvolvimento de agentes de IA.

Qual combinação de métricas monitorar em testes de carga e de estresse?

Testes de carga e suas métricas medem quanto dado flui pelos sistemas, enquanto testes de estresse destacam limites de falha. O monitoramento identifica gargalos de desempenho em cenários de teste realistas usando uma ferramenta de testes e ajuda a aprimorar o planejamento de capacidade.

Como podemos ajudar você

Com quase 2 décadas de experiência e presença global, a Abstracta é uma empresa de tecnologia que ajuda organizações a entregar software de alta qualidade mais rápido, combinando engenharia de qualidade com IA e profunda expertise humana.

Acreditamos que fortalecer vínculos nos leva mais longe e nos ajuda a melhorar o software dos nossos clientes. Por isso, construímos sólidas parcerias com líderes do setor, Microsoft, Datadog, Tricentis, Perforce BlazeMeter, Saucelabs e PractiTest, para oferecer o que há de mais recente em tecnologia de ponta.

Ao ajudar organizações como BBVA, Santander, Bantotal, Shutterfly, EsSalud, Heartflow, GeneXus, CA Technologies e Singularity University, criamos um modelo de parceria ágil para internalizar, terceirizar ou ampliar equipes existentes de forma integrada.

Visite nossa página de serviços de testes de desempenho! Fale conosco para melhorar o desempenho do seu sistema.

Siga a gente no LinkedIn e no X para fazer parte da nossa comunidade!

Fique conectado

com a Abstracta

Notícias, artigos e recursos para construir software melhor.

Este site é protegido por reCAPTCHA e se aplicam a Política de Privacidade e os Termos de Serviço do Google.

Leia sobre nossa política de privacidade.

Ilustração de duas pessoas conectadas por uma ponte, uma com um notebook e outra com um tablet, representando colaboração e comunicação. Fim do artigo sobre métricas de testes de desempenho.