Qual a estratégia deveria analisar antes de testar performance de uma aplicação? Quais são os desafios enfrentados?
O que eu preciso saber antes de começar a "apanhar" de testes de performance?
A ideia é compartilhar 5 dicas de como estruturar seus testes de performance baseado nos erros e acertos aprendidos na prática.
1. Por que eu deveria cuidar do soft skills tanto quanto cuido
do hard skills em um contexto ágil?
Ariane Izac
Vamos falar sobre automação de teste de software nas releases?
5 dicas para estruturar seu teste de performance
Trilha Testes
Ariane Izac
Analista de Teste
5 dicas para estruturar seu teste de performance
TDC Porto Alegre 2018
Trilha Testes
Ariane Izac
Analista de Teste
2. Analista de Testes
Há 11 anos
Ariane Izac
Matera Systems
Há 6 anos
Blogueira e Webineira
Grupo no LinkedIN
Diário de uma Paixão:
Teste de Software
3. Desafios
● Projeto Novo voltado para performance
Objetivo
● Sistema escalável
● Melhorar desempenho de funcionalidades críticas
● Maior Desafio: Soluções sem impacto no negócio
5. A estratégia de Teste
● 1. Entender conceitos
● 2. Levantar Dúvidas
● 3. Buscar informações
● 4. Estruturar Ambiente de Teste
● 5. Traçar um planejamento
6. 1. Entender Conceitos
● Do projeto
● Negócio
● O que é Performance?
● O que é Teste de Performance?
● Quais são os tipos de Teste de Performance?
7. Mais dos conceitos
● O que é Performance?
“... significa realização, feito, façanha ou desempenho.
A palavra performance vem do verbo em inglês "to
perform" que significa realizar, completar, executar ou
efetivar.”
● O que é Teste de Performance?
- Teste Não Funcional
- Mede a capacidade e o desempenho do
processamento do software
9. Quais tipos de Teste de
Performance?
Teste de Carga ou Volume
Valida o comportamento da aplicação trabalhando
com maiores cargas
Teste de Capacidade
Valida o comportamento da aplicação dentro de
um período com aumento da carga, sua
degradação no período
Teste de Stress
Valida o comportamento do software trabalhando
acima do limite, no pico de
processamentohardware - pior cenário e sua
recuperação
10. 2. Levantar Dúvidas
● Quais critérios para definição da massa de dados?
● Qual quantidade de execuções para análise das
medições?
● Quais métricas utilizar?
● Qual processo aplicado para teste de performance?
● Que ferramenta é utilizada?
● Executa na integração contínua?
● Como é o trabalho da análise? Trabalha com DBA’s?
Desenvolver outros skills?
11. 3. Buscando Informações
○ Dentro de casa - Matera
○ Fora Matera
■ Profissionais que já trabalhavam com
isso (Raphael Mantilha)
■ Fóruns
■ Google
■ Palestras
12. 4. Estrutrar o Ambiente
de Teste
● Ambiente de teste mais próximo do ambiente do
cliente
○ Distribuição de Dados
○ Parametrização
● Configurações do Servidor
○ De Aplicação
○ De Banco de Dados
13. 5. Planejar
● Conhecer a arquitetura da aplicação
● Análise de dados
○ Criação da massa de teste
○ Melhor distribuição de dados
● Levantamento dos cenários
● Priorização
● Definição de ferramentas *
● Definição de métricas *
● Ter visão do todo - Impactos das alterações
14. Definição de Ferramentas
● POC em algumas ferramentas
○ NewRelic
○ Jmeter
○ Visual VM
● Por fim, utilizamos:
○ Relatórios Oracle: AWR
○ Enterprise Manager (Oracle)
○ Fligth Record
○ Grafana - Dashboard
● Importante ressaltar pensar no custo x benefício
15. Métricas
● Throughput (vazão) - taxa de transferência do
processamento
● Consumo de CPU - servidor de App e BD
● Consumo de Memória - servidor de App e BD
● Tempo de resposta
● Uso Disco
● Facilidade: Criação de uma tabelascript para
coletar as métricas
16. Na prática: Desafios Enfrentados
● Problemas de ambiente
● Interpretação de relatórios das ferramentas
● Falta de definição de um requisito não funcional
de performance
● Automatização de processos integraçõesarquivos
● Falta de skills do time no geral com contexto de
performance
● End to End antecipando feedbacks
17. Pontos de Atenção
● Ferramentas que auxiliam na rastreabilidade
podem influenciar na performance: TKPROF e
LOGS
● Caches influenciam nas medições
● Trabalho a muitas mãos: Dev, testador, DBA
● Definition Of Done para entregas de performance
19. Lições aprendidas
● Importância do relacionamento Dev x Test
● Testar performance vai além de conhecimento
técnico
○ Distribuição de dados
○ Como cliente vai operar
○ Ou seja, informações de negócio são
relevantes para abordagens dos testes
20. Ponto de vista do teste...
● Principal: Mudança de Mindset - testes não
funcionais
● Flexibilidade
● Desenvolver skills técnicos para testar performance:
○ Visão de processamento do banco de dados
○ Visão de processamento da aplicação
○ Monitoramento
○ Análise