Terminologias De Teste De Performance Que Todo QA Deve Conhecer

Dia após dia percebemos o quão o mundo está rápido e volátil, em mudança constante, onde o tempo de resposta de uma aplicação faz todo o diferencial na hora de consumir um produto, escolher um site de compra, ou simplesmente para navegar horas em uma página de entretenimento. Performance passou de um simples coadjuvante na esteira de testes para um ator principal na busca pela excelência de um software.
Assim, nós QAs devemos ter cada vez mais um domínio sobre esse tipo de teste, mas para isso antes de começarmos de fato com os testes devemos entender as principais terminologias para medir e aprimorar o desempenho de nossos aplicativos, então abaixo trouxe os principais termos que irão te auxiliar a entender um pouco mais desse tipo de teste.
Usuários Simultâneos: vários usuários usando um aplicativo ao mesmo tempo. Para simular cenários de teste de performance em tempo real, precisamos de verificações de simultaneidade, isto é, garantir que o aplicativo possa gerenciar e fornecer respostas corretas para um número grande de usuários e esses atuando em paralelo.
Usuários Virtuais: Se usarmos algumas ferramentas de teste de performance como JMeter ou K6, podemos carregar usuários virtuais. Basicamente, significa um usuário que não é real, mas é usado para replicar ações reais do usuário em um aplicativo para verificações de desempenho. Os usuários virtuais podem ser descritos como Threads, sendo que cada thread garante o acesso e a validação a aplicação que você está testando.
Tempo de Resposta: é o tempo total entre o momento em que um usuário ou cliente envia uma solicitação ao sistema ou aplicação e o momento em que recebe uma resposta. O tempo de resposta pode ser influenciado por vários fatores, como latência, capacidade do servidor, consultas ao banco de dados, eficiência do código, armazenamento em cache e simultaneidade (explicado abaixo).
- Cache: é uma técnica que melhora a velocidade e o desempenho do seu site, armazenando dados ou recursos usados com frequência em um local rápido e acessível, como navegador ou servidor de cache, etc.
Um tempo de resposta de 2 segundos pode ser aceitável para uma página web, mas inaceitável para uma aplicação em tempo real. Da mesma forma, um tempo de resposta de 10 milissegundos pode ser impressionante para uma consulta de banco de dados, mas insignificante para um serviço de streaming de vídeo.
Transação por segundos : a medição é usada para calcular o desempenho de sistemas que lidam com transações de rotina e manutenção de registros.
O TPS pode ser calculado com a fórmula:
T÷S = TPS
Onde:
T = Número de transações
S = Número de segundos
TPS = Transações por segundo
Think Time: um usuário do mundo real leva tempo para ler o conteúdo de uma página da web ou preencher os detalhes em um formulário da web. Tais atividades criam uma lacuna entre as duas ações de um usuário. Think time simula o mesmo intervalo de tempo adicionando um atraso entre duas transações.
Massa de dados: se refere à quantidade e complexidade dos dados que estão sendo processados ou manipulados pela aplicação durante o teste. Isso pode incluir dados como registros de usuários, transações, conteúdo de banco de dados, ou qualquer outra informação relevante para a funcionalidade da aplicação. Suponhamos que para realizar uma transação a thread necessita estar logado, assim, é necessário um conjunto de acessos para que cada thread simule corretamente uma transação.
Cenário de teste: é uma combinação específica de condições de uso da aplicação que é simulada durante o teste para avaliar seu desempenho. Cada cenário de teste pode incluir diferentes elementos, como o número de usuários simultâneos, o tipo de ação que estão realizando na aplicação (por exemplo, navegar em páginas, fazer compras, enviar mensagens, etc.), a carga de dados sendo processada, e outros fatores relevantes. Então caso queremos simular um acesso a pagina e compra de um produto, devemos criar um cenário de teste que englobe todos os endpoints que serão chamados pelo usuário que irá comprar o produto.
Endpoints: se referem aos pontos de entrada ou saída em uma aplicação, geralmente associados a APIs (Interface de Programação de Aplicações) ou serviços web. Os endpoints representam os URLs específicos que os clientes (como outros sistemas ou aplicativos) podem acessar para interagir com a aplicação e realizar operações, como enviar solicitações (requests) para obter ou enviar dados.
Request Rate: é a taxa na qual as solicitações são enviadas para a aplicação durante o teste. Essas solicitações podem ser qualquer tipo de interação que a aplicação espera receber, como acessar uma página da web, fazer uma consulta a uma API, enviar um formulário, etc. Sua medida é muito importante para o teste de performance pois ajuda a avaliar como a aplicação se comporta sob diferentes cargas de trabalho. Uma alta taxa de solicitação pode sobrecarregar os recursos do servidor e causar tempos de resposta lentos ou até mesmo falhas devido a sobrecarga.
Taxa de Erros: indica a proporção de solicitações que resultaram em erro durante um teste específico. Esses erros podem incluir uma variedade de respostas que indicam problemas na execução da operação solicitada, como códigos de erro HTTP (por exemplo, 404 para “não encontrado”, 500 para “erro interno do servidor”, etc.) ou outros tipos de falhas de aplicação. A taxa de erro junto com Request Rate e Tempo de Resposta são métricas primordiais para garantir uma monitoria que garanta que a aplicação está com estabilidade e confiabilidade sobre grande carga de acessos.
Script de teste: é um conjunto de instruções ou comandos que descrevem as ações que serão realizadas durante o teste para simular o comportamento dos usuários ou sistemas em uma aplicação. Esse script é usado para automatizar o processo de teste e repetir as ações em condições controladas.
Rampagem (ramp up period): A propriedade ramp up representa o atraso entre o início do teste até que todos os usuários virtuais estejam em execução. Isso é independente da configuração de duração e informa quanto tempo levará para “aumentar” o número total de usuários virtuais escolhidos. Essa propriedade auxilia por exemplo a verificar uma escala de acessos de usuários simultâneos por um período de tempo até chegar a quantidade total de usuários, um exemplo na vida real é uma promoção que é adicionada em uma propaganda na qual a cadência de acessos se dará a partir da visibilidade daquela propaganda, podendo aumentar bruscamente ou por um período de tempo.
Linha de base: ao estabelecer os testes de performance, precisamos ter uma métrica de antemão que possa iniciar o teste. Agora, essa métrica pode conter dados sobre o desempenho atual do aplicativo ou o limite mínimo que nosso aplicativo deve atender. Esta métrica deve ser o ponto de inicio do teste e ela deve ser batida e aprimorada ao passar do tempo.
Bom, hoje conhecemos um pouco sobre as terminologias de teste de performance, para as próximas semanas iremos conhecer sobre como começar os teste de performance e colocar em prática com a ferramenta K6.
Para ter conteúdos semanais sobre Tecnologia e Qualidade de Software, assine minha newsletter Tech & Quality 🚀.