Estou em um projeto que o foco é testar performance, e agora? Quais estratégias de teste precisamos analisar antes de colocar a mão na massa? Quais são os desafios que enfrentaremos? O que eu preciso saber antes de começar a "apanhar" de testes de performance?
A ideia é compartilhar os desafios e as soluções encontradas em um projeto cujo objetivo era melhorar a performance de um sistema.
Boas práticas de programação com Object Calisthenics
O que eu deveria saber antes de testar performance?
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?
O que eu deveria saber antes de testar performance?
Quality Fest’18
Ariane Izac
Analista de Teste
3. 3
Contexto
● Projeto Novo
● Preparação para aumento de volume
● Objetivo
● Sistema escalável
● Melhorar desempenho de funcionalidades críticas
● Maior Desafio: Soluções sem impacto no negócio
Desafios
6. 6
A estratégia
de Teste
A estratégia: Prieiras
Dúvidas
* Dúvidas que pairavam sobre testes de performance
7. 7
1. Entender conceitos
2. Levantar Dúvidas
3. Buscar informações
4. Estruturar Ambiente de Teste
5. Traçar um planejamento
a. Métricas
b. Definição de Ferramentas
c. Priorização
d. Medir Impactos
e. Levantar Cenários
A estratégia
A estratégia
de Teste
8. 8
A estratégia
de Teste
● O que é Performance?
● O que é Teste de Performance?
● Quais são os tipos de Teste de Performance?
Entender Conceitos
9. 9
“... 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 é
Performance?
A estratégia
de Teste
10. 10
A estratégia
de Teste
● Preparação para aumento de volumetria
● Projeto com foco em melhorar performance de
sistemas já existentes
● Time com muito conhecimento técnico e negócio
mas não tão habituados a trabalhar com
performance
● Desafio: Soluções que não alterassem o core do
negócio
Teste de Performance:
Antes x Depois
11. 11
● Teste Não Funcional
● Mede a capacidade e o desempenho do
processamento do software
O que é teste de
Performance?
A estratégia
de Teste
12. 12
● 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
Quais tipos de Teste
de Performance?
A estratégia
de Teste
13. 13
A estratégia
de Teste
Primeiras 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?
Desenvolveu outros skills?
14. 14
A estratégia
de Teste
● Informações sobre testes de performance
○ Dentro de casa - Matera
○ Fora Matera
■ Profissionais que já trabalhavam com
isso (Raphael Mantilha)
■ Fóruns
■ Google
■ Palestras
Buscando Informações
15. 15
A estratégia
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
Ambiente de Teste
16. 16
A estratégia
de Teste
● 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 métricas
● Definição de ferramentas
● Ter visão do todo - Impactos das alterações
Planejamento
17. 17
A estratégia
de Teste
● 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
Definição
de Ferramentas
18. 18
A estratégia
de Teste
● 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
Métricas
19. 19
Na prática
● 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
Desafios Enfrentados
20. 20
Na prática
● 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
Ponto de Atenção
21. 21
End to End
“O teste “end-to-end” é um tipo de teste de sistemas que
visa a provar o sistema de uma forma mais completa
imitando o ambiente real, tais como: acessar um banco
de dados, usar uma rede de comunicação e interagir com
outros hardwares ou sistema. (RIOS, Emerson &
MOREIRA, Trayahú, 2003)” [3]
O que é End to End?
22. 22
End to End
● Simular as principais operações no Sistema
● Qual critério utilizado?
○ Priorização das funcionalidades
○ Contemplar as integrações
○ Trabalhar como maior volume - pior cenário
● Benefícios
○ Antecipado GAPS encontrados nas integrações
■ Performance
■ Erros funcionais
End to End
24. 24
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
Aprendemos que...
25. 25
Lições
aprendidas
● 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
Ponto de vista do teste...