O que é teste de ESTRESSE em testes de software?
⚡ Resumo Inteligente
O teste de estresse leva um aplicativo além de seus limites operacionais normais para encontrar o ponto de ruptura, confirmar que as falhas são tratadas adequadamente e comprovar que o sistema se recupera sem problemas assim que a carga extrema é removida.
O que é teste de estresse?
Teste de estresse O teste de estresse é um tipo de teste de software que verifica a estabilidade e a confiabilidade de um aplicativo. O objetivo do teste de estresse é avaliar a robustez e a capacidade de lidar com erros do software sob condições de carga extremamente pesadas, garantindo que ele não apresente falhas em situações críticas. Ele testa o software além dos limites normais de operação e avalia seu comportamento em condições extremas.
Em testes de estresse, o aplicativo em teste (AUT) é submetido a condições extremas por um curto período de tempo para determinar sua capacidade de suportar cargas elevadas. O uso mais comum dos testes de estresse é determinar o limite em que o sistema, software ou hardware falha. Também verifica se o sistema demonstra um gerenciamento de erros eficaz após esse limite ser ultrapassado.
In Engenharia de SoftwareOs testes de estresse são frequentemente listados juntamente com... Teste de ResistênciaMas os dois diferem: o Teste de Estresse aplica uma carga anormalmente alta em um curto período para encontrar o ponto de ruptura, enquanto o Teste de Resistência (ou teste de imersão) mantém uma carga moderada por horas para expor a degradação gradual.
A captura de tela abaixo mostra um grande bloco de dados sendo copiado de uma página da web.
O aplicativo em teste é submetido a uma sobrecarga quando 5 GB de dados são copiados do site e colados no Bloco de Notas. O Bloco de Notas, então, fica sobrecarregado e retorna a mensagem de erro "Não está respondendo", exatamente como mostra a próxima captura de tela.
O mesmo princípio se aplica diretamente a sistemas do lado do servidor.
Necessidade de testes de estresse
Considere os seguintes exemplos em tempo real onde a utilização de testes de estresse se torna óbvia:
- Durante o período do festival, uma loja onlineping O site pode registrar um pico de tráfego ou quando anuncia uma promoção.
- Quando um blog é mencionado em um jornal importante, ele sofre um aumento repentino no tráfego.
É imprescindível realizar testes de estresse para acomodar esses picos de tráfego anormais. A incapacidade de lidar com esse tráfego repentino pode resultar em perda de receita e danos à reputação.
Os testes de estresse também são extremamente valiosos pelos seguintes motivos:
- Verifica se o sistema funciona em condições anormais.
- Isso confirma que uma mensagem de erro apropriada é exibida quando o sistema está sob carga.
- A falha do sistema em condições extremas pode resultar em enormes perdas de receita.
- É melhor estar preparado para condições extremas realizando testes de estresse com antecedência.
A próxima seção descreve o que um teste de estresse bem-sucedido deve comprovar.
Objetivos do teste de estresse
O objetivo do teste de estresse é analisar o comportamento do sistema após uma falha. Para que o teste de estresse seja bem-sucedido, o sistema deve exibir uma mensagem de erro apropriada enquanto estiver sob condições extremas.
Para realizar testes de estresse, conjuntos de dados massivos são frequentemente utilizados, e esses dados podem ser perdidos enquanto o sistema estiver apresentando falhas. Os testadores devem garantir que esses dados relacionados à segurança não sejam perdidos durante os testes de estresse.
O principal objetivo dos testes de estresse é garantir que o sistema se recupere após uma falha, uma propriedade chamada recuperabilidade. Teste de Recuperação Em seguida, verifica detalhadamente o procedimento de restauração.
Teste de carga versus teste de estresse
Ambas as técnicas pertencem à Teste de Desempenho família, por isso são fáceis de confundir. O diagrama abaixo compara os dois perfis de carga.
| Teste de carga | Teste de estresse |
|---|---|
| Teste de carga Testa o comportamento do sistema em condições normais de carga de trabalho; simula a carga de trabalho real esperada. | O teste de estresse avalia o comportamento do sistema sob condições extremas e é realizado até que o sistema falhe. |
| O teste de carga não danifica o sistema. | Os testes de estresse tentam deliberadamente quebrar o sistema, sobrecarregando-o com dados ou privando-o de recursos. |
Perfis relacionados incluem Teste de pico (uma explosão repentina e breve), Teste de Volume (grande volume de dados em vez de muitos usuários) e Teste de escalabilidade (espaço para crescimento).
Tipos de testes de estresse
A seguir, são apresentados os tipos de Teste de Estresse, explicados um de cada vez.
Teste de estresse distribuído
Em sistemas distribuídos cliente-servidor, os testes são realizados em todos os clientes a partir do servidor. O papel do servidor de estresse é distribuir um conjunto de testes de estresse para todos os clientes de estresse e para tracO servidor verifica o status de cada cliente. Após um cliente contatar o servidor, este adiciona o nome do cliente e começa a enviar dados para teste. A figura abaixo mostra como o servidor de estresse alcança alguns clientes, mas não outros.
Entretanto, as máquinas cliente enviam um sinal, ou pulsação, confirmando que ainda estão conectadas ao servidor. Se o servidor não receber nenhum sinal de uma máquina cliente, essa máquina precisa ser investigada mais a fundo para depuração. Na figura, o servidor consegue se conectar com 2 clientes (Cliente 1 e Cliente 2), mas não consegue enviar nem receber sinal dos Clientes 3 e 4.
Para esses cenários de teste de estresse, a melhor opção é executar o sistema durante a noite. Grandes fazendas de servidores precisam de um método mais eficiente para determinar quais computadores apresentaram falhas de estresse que precisam ser investigadas.
Teste de estresse de aplicativos
Este teste concentra-se na identificação de defeitos relacionados ao bloqueio e travamento de dados, problemas de rede e gargalos de desempenho em uma única aplicação.
Testes de estresse transacionais
Realiza testes de estresse em uma ou mais transações entre duas ou mais aplicações. É utilizado para o ajuste fino e a otimização do sistema.
Teste de estresse sistêmico
Trata-se de um teste de estresse integrado que pode ser executado em vários sistemas que compartilham o mesmo servidor. Ele é usado para encontrar defeitos em que um aplicativo bloqueia os dados de outro.
Testes de estresse exploratórios
Este é o tipo de teste de estresse usado para testar o sistema com parâmetros ou condições incomuns que dificilmente ocorreriam em um cenário real. Ele é usado para encontrar defeitos em situações inesperadas, como:
- Um grande número de usuários fez login ao mesmo tempo.
- Um antivírus sendo iniciado em todas as máquinas simultaneamente.
- Um banco de dados fica offline enquanto está sendo acessado por um site.
- Um grande volume de dados sendo inserido simultaneamente no banco de dados.
Independentemente da variante aplicada, a sequência de execução permanece a mesma.
Como fazer testes de estresse?
O processo de teste de estresse pode ser realizado em 5 etapas principais:
- Etapa 1) Planejando o teste de estresse: Aqui você coleta os dados do sistema, analisa o sistema e define os objetivos do teste de estresse.
- Etapa 2) Criar scripts de automação: Nesta fase, você cria os scripts de automação de testes de estresse e gera os dados de teste para os cenários de estresse.
- Etapa 3) Execução do script: Nesta etapa, você executa os scripts de automação de Teste de Estresse e armazena os resultados do teste.
- Etapa 4) Análise de Resultados: Nesta etapa, você analisa os resultados do Teste de Estresse e identifica os gargalos.
- Etapa 5) Ajustes e Otimização: Nesta etapa, você ajusta o sistema, altera as configurações e otimiza o código com o objetivo de atingir o padrão de desempenho desejado.
Por fim, você executa todo o ciclo novamente para determinar se os ajustes produziram os resultados desejados. Por exemplo, não é incomum precisar de 3 a 4 ciclos do processo de Teste de Estresse antes que as metas de desempenho sejam atingidas, portanto, os scripts normalmente são mantidos em conjunto com o sistema. regressão diante.
Ferramentas recomendadas para testes de estresse
As quatro ferramentas abaixo atendem à maioria das necessidades, desde suítes empresariais até uma opção gratuita de código aberto.
LoadRunner
LoadRunner é uma ferramenta de teste de carga amplamente utilizada, agora vendida por OpenText nas edições Professional, Enterprise e Cloud, após migrar da HP para a Micro Focus. OpenTextOs resultados dos testes de carga produzidos pelo LoadRunner são tratados como referência.
JMeter
Apache JMeter é uma ferramenta de teste de código aberto. É uma ferramenta pura Java Aplicativo para testes de estresse e desempenho, destinado a abranger tipos de teste como carga, funcional e estresse. Versões atuais 5.6.x do Apache JMeter requerer Java 8 ou posterior, com Java 17 recomendado.
testador de estresse
Esta ferramenta oferece uma análise abrangente do desempenho de aplicações web, apresenta os resultados em formato gráfico e é fácil de usar. Não requer programação de alto nível, o que mantém o retorno sobre o investimento em um nível elevado.tracativo para equipes menores.
NeoVer
NeoVer, agora parte do Tricentis O portfólio é uma ferramenta popular para testar a web e aplicações móveisEle pode simular milhares de usuários para avaliar o desempenho do aplicativo sob carga e analisar os tempos de resposta. Também oferece suporte a testes de desempenho, carga e estresse integrados à nuvem e apresenta boa escalabilidade.
Mais opções estão listadas no guia para ferramentas de teste de desempenhoQualquer que seja a opção escolhida, seu resultado só terá significado em relação às métricas abaixo.
Métricas para testes de estresse
As métricas ajudam a avaliar o desempenho de um sistema e geralmente são analisadas ao final do teste de estresse. As métricas mais comuns são agrupadas em três famílias.
Medindo a escalabilidade e o desempenho
- Páginas por segundo: Mede quantas páginas foram solicitadas por segundo.
- Taxa de transferência: Uma métrica básica — tamanho dos dados de resposta por segundo.
- Rodadas: Número de vezes que os cenários de teste foram planejados em comparação com o número de vezes que um cliente os executou.
Resposta da Aplicação
- Tempo de impacto: Tempo médio para recuperar uma imagem ou uma página.
- Tempo para o primeiro byte: Tempo necessário para retornar o primeiro byte de dados ou informações.
- Tempo de página: Tempo necessário para recuperar todas as informações de uma página.
Falhas
- Conexões falhas: Número de conexões falhas recusadas pelo cliente (sinal fraco).
- Rodadas falhas: Número de rodadas que falham.
- Tentativas falhas: Número de tentativas falhas do sistema (links quebrados ou imagens não visualizadas).
A seção final lista as situações que mais frequentemente justificam um teste de estresse.
Exemplos de Testes de Estresse
Os testes de estresse se mostram importantes sempre que um evento prevê um aumento significativo do tráfego, muito além da média diária:
- Um site de comércio eletrônico anunciando uma promoção de festival.
- Um site de notícias no momento de um evento importante.
- Uma junta de educação que publica os resultados dos exames.
- Redes sociais, blogs e aplicativos móveis durante um momento viral.
Em cada caso, o teste monitora recursos como memória, processador e rede, verifica se as mensagens de erro apropriadas aparecem sob estresse e confirma se o sistema retorna ao normal posteriormente. Ele se encaixa no ciclo de vida de teste de software como uma verificação não funcional ao lado de Teste do sistema e o conjunto mais amplo de tipos de teste de software.

.png)
.png)

