Pediram para fazer um Teste de Performance, quais perguntas devo fazer na reunião de entendimento?

Tatiane Almeida
5 min readSep 21, 2022

--

Photo by Hadija Saidi on Unsplash

Quando falamos de Teste de Performance, a primeira coisa que nos vem a cabeça é abrir a ferramenta de carga: JMeter, Gatling, K6, etc e começar a implementar o script.

Mas, Teste de Performance assim como qualquer tipo de teste é muito mais do que script e como qualquer atividade, requer planejamento.

E a grande dúvida que paira em nossas cabeças é: quais perguntas devem ser feitas para a área de negócio e/ou técnica?

Nesse artigo, listo as principais perguntas que podem ser feitas durante uma reunião de entendimento de projeto.

Objetivo

Aqui devemos esclarecer a necessidade do teste, a “dor” do cliente, para tentar reproduzir em um ambiente controlado.

  • Qual o contexto do Teste de Performance?
  • Ele é necessário para suprir uma demanda de produção ou testaremos um novo produto?

Critérios de Aceitação

Usamos o critério de aceitação para verificar os resultados da nossa bateria (execução) de Performance e verificar se o teste passou ou não. Muitas vezes recebemos como contexto que temos um problema em produção e que o sistema deve ser mais eficiente.

Porém ser eficiente é algo subjetivo, e métricas subjetivas não se aplicam a Teste de Performance! Performance trabalha com valores lógicos!

BOA PRÁTICA PARA O SHIFT LEFT -> Fique atento se o critério de aceitação para Teste de Performance faz parte do seu épico.

Alguns exemplos de perguntas e critérios de aceitação

  • Qual o tempo de resposta desejado? O catálogo de produtos deve ser exibido em menos de três segundos.
  • Devemos considerar como métrica o tempo de resposta 90 percentil? O tempo de resposta para a consulta de saldo deve ser de, no máximo, 6 segundos considerando o 90 percentil.

Para saber mais sobre Percentis, leia o artigo do Júlio de Lima Percentis e sua importância nos testes de performance | by Júlio de Lima | Medium

  • Qual o Throughput ou Vazão desejada? O sistema tem de suportar 25 requisições por segundo sem a ocorrência de falhas.
  • Há algum recurso relevante a ser monitorado nesse teste? A utilização do processador não deve permanecer acima de 75% durante intervalo de tempo superior a 5% do tempo de duração total do estágio de teste que estiver em execução.

Outros recursos importantes que precisam ser considerados são a memória, disco (I/O) e rede (I/O).

  • Qual o número máximo de usuários que o sistema deve suportar? Quantos usuários podem ser executados em uma configuração de hardware específica?

O sistema deve ser capaz de suportar 500 usuários enviando, no total, 25 requisições por segundo com, no máximo, 15% de falhas em todas as requisições executadas durante o Teste de Performance.

  • Será tolerável erros nesse teste? Qual a margem aceitável? A taxa de erro deve ser inferior a 15% em todas as requisições executadas durante o Teste de Performance.
  • Qual o APDEX a ser alcançado?: APDEX é um índice utilizado para verificar o quão performática a aplicação é.

Definir o Threshold (Tempo ideal de resposta para sua aplicação)

· Satisfatórias -> Até o Threshold (T)

· Toleráveis -> Até 4*T

· Frustradas -> Maior 4*T

Como calcular o APDEX?

Outras métricas relacionadas a negócios, como:

  • Qual a expectativas dos usuários para determinado fluxo?
  • Há obrigações contratuais a serem obedecidas no teste?
  • Há padrões de indústria e conformidade com agências reguladoras a serem obedecidos?
  • Há SLA’s?

Sobre a arquitetura

  • Há diagramas de arquitetura disponível?
  • O que essa aplicação faz?
  • Quem acessa essa aplicação? De onde? Como?
  • Onde está hospedada? Por quem?
  • Quais são as tecnologias envolvidas?
  • Quais são as dependências existentes?

Ambiente no qual o Teste de Performance será executado

  • Em qual ambiente devemos executar o Teste de Performance?
  • Para ambientes não produtivos, como será feito o escalonamento dos recursos temporariamente, para que tenhamos um ambiente similar ao ambiente produtivo?
  • Qual será a duração do teste?
  • Para ambientes produtivos:

-> -> Como trataremos a questão da LGPD?

-> -> Qual o plano de mitigação e contingência caso ocorra algum problema no ambiente produtivo durante a execução do Teste de Performance?

-> -> Qual o melhor horário para a execução? Quantos usuários serão impactados? Como será feita a comunicação sobre os Testes para os impactados e envolvidos?

-> -> Qual será a duração do teste?

-> -> Quais os riscos de se executar um teste em produção?

  • Para integrações com sistemas terceiros:

-> -> Há um ambiente de performance ou não produtivo dedicado no sistema parceiro?

-> -> Quais as atualizações de ambiente necessárias para que o teste ocorra?

-> -> Será necessário algum mock?

Massa de Teste

  • Qual o tipo de massa precisaremos para o Teste de Performance?
  • Quem será responsável por prover a massa?
  • A massa poderá ser reutilizada a cada bateria (execução) de teste?
  • O sistema a ser testado contém cache? Como lidar com o mesmo para que não afete no resultado final?

Cenários

  • Quais cenários farão parte do script?
  • Devo considerar o fluxo de ponta a ponta? Ou podemos fazer pequenas entregas testando a parte crítica do fluxo primeiro?
  • Qual o tipo de teste desejado para o cenário: Carga, Volume, Estresse, Endurance, Pico?

Volumetria

  • Qual o volume de transações dos últimos 6 meses?
  • Há um padrão de volume a ser considerado?
  • Há um intervalo de tempo em que esse volume padrão aconteceu?
  • Quantos acessos por dia? E ao mesmo tempo?
  • Qual o ramp up desejado? Ramp up: Intervalo de tempo durante o qual os usuários virtuais acessam a aplicação.
  • Qual o steady state desejado? Steady State: Intervalo de tempo, após o Ramp Up, durante o qual os usuários virtuais realizam operações na aplicação. Não há novos usuários acessando a aplicação durante este intervalo.
  • Há think time a ser considerado? Think Time: Tempo de espera entre as requisições do Teste de Performance.
  • Como será a distribuição de carga entre os cenários envolvidos?

Monitoramento

  • Há alguma ferramenta de APM no ambiente onde ocorrerá o Teste de Performance: Grafana, Datadog, New Relic, Dynatrace?
  • Para ambiente cloud: Qual o namespace, serviço e banco de dados a ser monitorado?
  • Para ambiente on-premisse: Qual o servidor, endereço IP e sistema operacional a ser monitorado?

--

--