No post anterior fizemos uma prévia à
Introdução a Testes de Performance. Agora, vamos para a parte divertida que é “montar um plano” para executar esse tipo de teste.

Falar de teste de performance nos remete a falsa impressão de que o nosso único foco é extremamente técnico, porém, existem outras questões, não menos importantes, que deveríamos considerar nesta abordagem.
Neste post falaremos sobre a estratégia de testes de performance e pontos levantados em lições aprendidas em um projeto:
Entender os conceitos Levantar/Esclarecer as dúvidas Estruturar Ambiente de Teste Traçar um planoRessalto que essa foi a melhor abordagem que encontrei naquele momento. Deixo aberto o canal para sugestões e críticas do que pontuei, vamos encorpar essa estratégia e trocar informações!
Entender os conceitos
O primeiro passo nesse tipo de projeto é compreensão. Entender seu objetivo e os conceitos relacionados à performance é essencial, ponto que já esclarecemos no primeiro post da sequência. Um outro tópico que entraria aqui, é o entendimento de negócio, pois, ele nos dará insumos para tomada de decisões da nossa estratégia e será a base para montar um ambiente de teste e escolher a massa de dados para as medições.
Levantar/Esclarecer as dúvidasAinda em volta dos primeiros passos, são várias as dúvidas que nos cercam quando começamos a trabalhar com performance, algumas delas são:
- Quais são os critérios para definir a massa de dados?
Até mesmo antes de montar o ambiente de teste, precisamos pensar o quanto e como a distribuição da massa de dados poderá influenciar nas medições. As regras de negócio VS. dados podem afetar negativamente alguns pontos principais.
- Qual é a quantidade de execuções necessárias para a análise das medições?
Para certificarmos que podemos confiar nas métricas das medições realizadas, quantas execuções dessa funcionalidade são necessárias? Sabemos que quando falamos em processamento de dados, existem questões de rede que podem influenciar, por exemplo, a latência. No início já precisamos ter essa ciência e considerar que somente uma execução não é suficiente para realizarmos a análise de performance.
- Quais métricas devo utilizar?
Medir performance não é só a contagem do tempo de resposta para sua requisição ou processamento, existem outras métricas como consumo de CPU e memória, por exemplo, que são importantes avaliar em uma análise desse tipo.
- Qual é o processo aplicado para teste de performance?
Validações usadas em um teste funcional são diferentes das que fazemos para testes não funcionais. Enquanto no funcional você tem claro qual o resultado esperado, no teste de performance, dependendo do tipo de alteração, pode ser que você precise validar antes o que foi implementado e terá que garantir a regressão de que o que existia continua funcionando.
Além disso, nesse teste você começará a pensar em questões como escalabilidade e requisitos de performance que nem sempre estão bem definidos. Quem diz o tempo de resposta ideal? Qual volume trabalharemos? É importante entender a necessidade de mudança de mindset para esse tipo de teste. Assim como o tópico anterior, em uma outra postagem também exploraremos mais sobre processo de teste aplicado.
- Qual ferramenta é utilizada?
Diante da arquitetura do sistema que será testado selecionar as ferramentas de apoio nas coletas de medição de performance e ferramentas que auxiliem na execução e criação de massa de dados com volume.
- Devemos executar na integração contínua?
Faz sentido criar um build com testes de performance, considerando que temos que pensar em um ambiente mais robusto para execução do mesmo? Tempo da build seria maior. Custo vs. benefício de manter esses testes na integração contínua, valem a pena? Essas são as questões relacionadas a esse tópico a ponderar.
- Como é o trabalho da análise? Trabalha-se com DBA’s? Desenvolvemos outras skills?
Acredito que essa seja a etapa mais difícil de todo processo de teste de performance, analisar os resultados e compreender se existe algum problema de performance a ser tratado. Sim, já precisamos ter consciência que alguns skills mais técnicos precisarão ser desenvolvidos para entender o processamento na camada de aplicação e de banco de dados. Além disso, nem sempre você terá um requisito indicando quais são os tempos aceitáveis para a funcionalidade validada.
É importante no início do trabalho já tentar esclarecer todas essas dúvidas. Ter tudo alinhado ajudará a antecipar problemas e a usar essas informações como base em seu planejamento.
Uma primeira dica é buscar dados dentro da empresa que trabalha. Sim, o coleguinha do lado pode já ter trabalhado em um outro projeto com foco em performance, já apanhou e aprendeu muita coisa e poderá compartilhar um pouco da experiência dele com você.
Outras fontes de informação e resposta para tantas perguntas é buscar fora, em postagens, palestras, fóruns e sempre é válido uma “varrida” no Google. Apesar de parecer um aviso óbvia, cuidado ao filtrar informações que são, de fato, relevantes para você.
Estruturar o ambiente de Teste
Medo! Quem nunca suou frio ao pensar que tem que montar um ambiente de teste para performance? É indicado que a configuração seja mais próxima do cliente e precisaremos de um hardware que suporte um processamento maior. Tenha em mente que nunca alcançará o utópico de replicar em um ambiente de homologação, exatamente o mesmo ambiente de PROD, porém, procure deixar as configurações tanto de hardware, quanto de software, o mais próximo possível do cliente.
Uma abordagem que se deve considerar no teste, é repetir o número de execuções. Isso porque pode haver uma variação no ambiente, por exemplo, latência da rede. Se a aplicação já existir, considere trabalhar com análise de execuções antes vs. depois para parâmetros de percentual de melhoria.
Quando falamos dessa estruturação, é necessário ponderar a distribuição dos dados e também a parametrização das regras de negócio. Um outro ponto importante que precisamos pensar em nossa estratégia é o planejamento dos testes. Mas como esse ponto é um pouco mais extenso, vou deixar como assunto para um próximo post.
Por hora, considere levantar e esclarecer as dúvidas do projeto, como testar performance já pensando em estruturar um processo para isso e levante as questões de ambiente de teste também. Confirme com o cliente as principais configurações e replique para seu ambiente. Tenha em mente que quanto mais próximo emular o ambiente, menor é a chance de encontrar gaps. O momento de estruturar é tão importante quanto a execução para que sejamos mais assertivos e colhermos os frutos disso ao longo do projeto.
Então combinado, próximo post abordaremos o planejamento dos testes de performance. Por favor, não deixe de contribuir nos comentários tópicos que julgue importante e não identificou no texto.
Te vejo na próxima postagem?