2. Definição
Teste de Desempenho:
Processo de teste para determinar (testar/medir) o
desempenho de um software.
Teste de Carga:
Tipo de teste de desempenho que mede o comportamento
de um componente ou sistema por meio do aumento de
carga.
Teste de Stress:
Tipo de teste de desempenho conduzido para avaliar um
sistema ou componente no (ou além do) limite da carga
esperada ou especificada.
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
3. Por que teste de desempenho?
Garantir um tempo de resposta dentro dos
padrões aceitáveis para evitar o abandono da
aplicação (perda de receitas);
Garantir o uptime (alta disponibilidade) de
aplicações e serviços de missões criticas
(perda de receitas, risco de vida);
Garantir o investimento de TI por meio da
previsão da escalabilidade e desempenho da
aplicação.
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
4. O que teste de desempenho não é
Teste de desempenho não é teste funcional.
As técnicas, ferramentas e habilidades
necessárias para realizar teste de
desempenho são diferentes.
Pode haver uma intersecção entre ambos
tipos de testes, mas nunca serão iguais.
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
5. Utilidade e Tipos de Teste
Testes de carga são capazes de detectar:
Bugs que não são detectados em ambientes
normais de execução.
Problemas relacionados com “bufferoverflow”,
“memory leaks” e má gestão de memória.
Serve de base para determinar os limites dos
recursos dos componentes de uma aplicação
de software:
Bases de dados, hardware e redes, etc.
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
6. Utilidade e Tipos de Teste
Testes de stress são capazes de detectar:
Os pontos (carga necessária) em que um
componente ou um sistema falha, chamados de
“breaking points”.
“um sistema sobrecarregado podem revelar
erros na implementação do componente ou
sistema.” (Pekka Turunen, 1988)
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
7. Tipos de Teste: Carga
Testes de carga simples :
Execução de testes que impõe carga máxima em todos os
componentes.
Testes de carga crescente:
Execução de carga crescente em todos os componentes
de maneira a detectar qual o limite de cada um.
Testes de carga variável por componente:
Testes de carga crescente e variável efetuados a cada
componente de maneira a detectar dependências não
previstas entre os componentes.
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
8. Tipos de Teste: Stress
Testes de sensibilidade:
Testes realizados com o propósito de descobrir o
impacto da sobrecarga de diferentes
componentes de forma a perceber as
dependências existentes.
Testes por cenário:
Testes baseados em casos reais que exigiriam
uma sobrecarga no sistema.
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
9. Processo
Avaliar as ferramentas disponíveis
Levantar os cenários que serão testados
Preparar o ambiente de teste
Executar os testes
Monitorar os testes
Relatar os resultados obtidos.
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
10. Principais Ferramentas
AB:
Ferramenta de stress do apache, útil para testes
simples de carga Parametrização dos scripts de
teste;
JMeter:
Funciona bem para gerar cargas
pequenas/média de uma única máquina, testa
protocolos diferentes de HTTP e permite criar
cenários razoavelmente complexos. Criação de
cenários de carga;
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS
11. Principais Ferramentas
Tsung:
Ferramenta capaz de simular cenários bem complexos
usando modelagem estocástica de usuários. Funciona
bem para gerar cargas enormes a partir de várias
máquinas.
Slamd:
Produto da Sun, permite criação de cenários e funciona de
maneira distribuída, consegue gerar cargas grandes.
Siege:
Utilizado para testes simples de carga, consegue gerar
uma carga bem grande a partir de apenas uma estação,
de difícil utilização em cenários complexos.
TESTE DE DESEMPENHO (CARGA/STRESS) E SUAS PRINCIPAIS FERRAMENTAS