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 e "crises existenciais" 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.
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
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?
Meetup DevTests
O que eu deveria saber antes de testar performance?
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
5. 5
A estratégia
de Teste
A estratégia: Prieiras
Dúvidas
* Dúvidas que pairavam sobre testes de performance
6. 6
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
Antes x Depois
7. 7
A estratégia
de Teste
● O que é Performance?
● O que é Teste de Performance?
● Quais tipos de Teste de Performance existentes?
Entender Conceitos
8. 8
“... 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
9. 9
● Teste Não Funcional
● Objetivo de medir a capacidade e o desempenho do
processamento do software
O que é teste de
Performance?
A estratégia
de Teste
10. 10
● 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
11. 11
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?
12. 12
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
13. 13
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
14. 14
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
● Ter visão do todo - Impactos das alterações
● Definição de ferramentas
Planejamento
15. 15
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
16. 16
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
17. 17
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
18. 18
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
19. 19
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?
20. 20
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
22. 22
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...
23. 23
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...