que é o STRESS Testing em Software Testing? Ferramentas, tipos, exemplos

Teste de Estresse

Teste de Estresse é um tipo de teste de software que verifica a estabilidade e confiabilidade do aplicativo de software. O objetivo do teste de estresse é medir o software em sua robustez e recursos de tratamento de erros em condições de carga extremamente pesada e garantir que o software não trave em situações de crise. Ele até testa além dos pontos operacionais normais e avalia como o software funciona sob condições extremas.

Em Engenharia de Software, o Teste de Stress também é conhecido como Teste de Resistência. No teste de estresse, o AUT é submetido a estresse por um curto período de tempo para saber sua capacidade de resistência. Um uso mais proeminente de teste de estresse é determinar o limite em que o sistema ou software ou hardware quebra . Ele também verifica se o sistema demonstra um gerenciamento de erros eficaz sob condições extremas.

O aplicativo em teste ficará estressado quando os dados de 5 GB forem copiados do site e colados no bloco de notas. O bloco de notas está sobrecarregado e exibe a mensagem de erro 'Não respondeu'.

Neste tutorial, você aprenderá-

Necessidade de teste de estresse

Considere os seguintes cenários -

  • Durante o período do festival, um site de compras online pode testemunhar um aumento no tráfego ou quando anunciar uma venda.
  • Quando um blog é mencionado em um jornal importante, ocorre um aumento repentino no tráfego.

É imperativo realizar o Teste de Stress para acomodar esses picos de tráfego anormais. A falha em acomodar esse tráfego repentino pode resultar em perda de receita e reputação.

O teste de estresse também é extremamente valioso pelos seguintes motivos:

  • Para verificar se o sistema funciona em condições anormais.
  • Exibindo mensagem de erro apropriada quando o sistema está sob estresse.
  • A falha do sistema sob condições extremas pode resultar em uma enorme perda de receita
  • É melhor estar preparado para condições extremas executando o teste de estresse.

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, um sistema deve exibir uma mensagem de erro apropriada enquanto estiver sob condições extremas.

Para conduzir o teste de estresse, às vezes, conjuntos de dados massivos podem ser usados, os quais podem ser perdidos durante o teste de estresse. Os testadores não devem perder esses dados relacionados à segurança durante o teste de estresse.

O principal objetivo do teste de estresse é garantir que o sistema se recupere após a falha, o que é chamado de recuperabilidade .

Teste de carga versus teste de estresse

Teste de carga Teste de Estresse
Teste de carga é testar o comportamento do sistema em condições normais de carga de trabalho, e é apenas testar ou simular com a carga de trabalho real O teste de estresse serve para testar o comportamento do sistema sob condições extremas e é realizado até a falha do sistema.
O teste de carga não quebra o sistema o teste de estresse tenta quebrar o sistema testando com dados ou recursos esmagadores.

Tipos de teste de estresse:

A seguir estão os tipos de teste de estresse e são explicados da seguinte forma:

Teste de tensão distribuída:

Em sistemas cliente-servidor distribuídos, o teste é feito em todos os clientes do servidor. A função do servidor de estresse é distribuir um conjunto de testes de estresse para todos os clientes de estresse e monitorar o status do cliente. Depois que o cliente contata o servidor, o servidor adiciona o nome do cliente e começa a enviar dados para teste.

Enquanto isso, as máquinas clientes enviam um sinal ou pulsação de que estão conectadas ao servidor. Se o servidor não receber nenhum sinal da máquina cliente, ele precisa ser investigado para depuração. Pela figura, um servidor pode se conectar com os 2 clientes (Cliente1 e Cliente2), mas não pode enviar ou receber um sinal do Cliente 3 e 4.

A corrida noturna é a melhor opção para executar esses cenários de teste de estresse. Grandes farms de servidores precisam de um método mais eficiente para determinar quais computadores tiveram falhas de estresse que precisam ser investigadas.

Teste de estresse de aplicativos:

Este teste concentra-se em encontrar defeitos relacionados ao bloqueio e bloqueio de dados, problemas de rede e gargalos de desempenho em um aplicativo.

Teste de estresse transacional:

Ele faz testes de estresse em uma ou mais transações entre dois ou mais aplicativos. É usado para ajustar e otimizar o sistema.

Teste de estresse sistêmico:

Este é um teste de estresse integrado que pode ser testado em vários sistemas em execução no mesmo servidor. É usado para localizar defeitos onde os dados de um aplicativo bloqueiam outro aplicativo.

Teste Exploratório de Estresse:

Este é um dos tipos de teste de estresse que é usado para testar o sistema com parâmetros ou condições incomuns que são improváveis ​​de ocorrer em um cenário real. É usado para encontrar defeitos em cenários inesperados como

  1. Um grande número de usuários conectados ao mesmo tempo
  2. Se um antivírus for iniciado em todas as máquinas simultaneamente
  3. Se o banco de dados ficar offline quando for acessado de um site,
  4. Quando um grande volume de dados é inserido no banco de dados simultaneamente

Como fazer o teste de estresse?

O processo de teste de estresse pode ser feito em 5 etapas principais:

  1. Planejando o teste de estresse. Aqui você reúne os dados do sistema, analisa o sistema, define os objetivos do teste de estresse
  2. Criar scripts de automação: nesta fase, você cria os scripts de automação de teste de estresse, gera os dados de teste para os cenários de estresse.
  3. Execução de script: neste estágio, você executa os scripts de automação de teste de estresse e armazena os resultados de estresse.
  4. Análise de resultados: nesta etapa, você analisa os resultados do teste de resistência e identifica os gargalos.
  5. Ajustes e otimização: neste estágio, você faz o ajuste fino do sistema, altera as configurações, otimiza o código com o objetivo de atender ao benchmark desejado.

Por último, você executa novamente todo o ciclo para determinar se os ajustes produziram os resultados desejados. Por exemplo, não é incomum ter de 3 a 4 ciclos do processo de teste de estresse para atingir as metas de desempenho

Ferramentas recomendadas para teste de estresse:

LoadRunner

O LoadRunner da HP é uma ferramenta de teste de carga amplamente usada. Os resultados do teste de carga moldados pelo Loadrunner são considerados uma referência.

Jmeter

Jmeter é uma ferramenta de teste de código aberto. É um aplicativo Java puro para estresse e Teste de performance . O Jmeter se destina a cobrir tipos de testes como carga, funcional, estresse, etc. Ele precisa do JDK 5 ou superior para funcionar.

Testador de estresse

Essa ferramenta fornece uma análise abrangente do desempenho do aplicativo da web, fornece resultados em formato gráfico e é extremamente fácil de usar. Nenhum script de alto nível é necessário e oferece um bom retorno do investimento.

Neo load

Esta é uma ferramenta popular disponível no mercado para testar a web e aplicativos móveis. Essa ferramenta pode simular milhares de usuários para avaliar o desempenho do aplicativo sob carga e analisar os tempos de resposta. Ele também suporta integração com a nuvem - teste de desempenho, carga e estresse. É fácil de usar, econômico e oferece boa escalabilidade.

Métricas para teste de estresse

As métricas auxiliam na avaliação do desempenho de um Sistema e geralmente são estudadas ao final do Teste de Stress. As métricas comumente usadas são -

Medindo Escalabilidade e Desempenho

  • Páginas por segundo: mede quantas páginas foram solicitadas / segundo
  • Taxa de transferência: métrica básica - tamanho dos dados de resposta / segundo
  • Rodadas: número de vezes que os cenários de teste foram planejados versus número de vezes que um cliente executou

Resposta do aplicativo

  • Tempo de acerto: tempo médio para recuperar uma imagem ou página
  • Tempo para o primeiro byte: o tempo é levado para retornar o primeiro byte de dados ou informações
  • Tempo da página: leva tempo para recuperar todas as informações em uma página

Falhas

  • Conexões com falha: número de conexões com falha recusadas pelo cliente (sinal fraco)
  • Rodadas falhadas: número de rodadas que falhou
  • Acessos com falha: número de tentativas com falha feitas pelo sistema (links quebrados ou imagens não vistas)

Conclusão

O objetivo do teste de estresse é verificar o sistema sob condições extremas. Ele monitora os recursos do sistema, como memória, processador, rede, etc., e verifica a capacidade do sistema de se recuperar de volta ao status normal. Ele verifica se o sistema exibe mensagens de erro apropriadas durante o estresse.