O que é teste de ESTRESSE em testes de software?

Teste de estresse

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

imagem de teste de estresse

Na Engenharia de Software, o Teste de Estresse 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 conhecer sua capacidade de resistência. Um uso mais proeminente do teste de estresse é determinar o limite no qual o sistema, software ou hardware quebra. Ele também verifica se o sistema demonstra um gerenciamento eficaz de erros sob condições extremas.

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

O que é teste de ESTRESSE em teste de software: ferramentas, necessidades e tipos

Necessidade de testes de estresse

Considere os seguintes exemplos em tempo real onde podemos descobrir o uso de testes de estresse-

  • Durante o festival, um site de compras online pode testemunhar um aumento no tráfego ou quando anuncia uma venda.
  • Quando um blog é mencionado em um jornal importante, ele sofre um aumento repentino no tráfego.

É imperativo realizar testes de estresse 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.

Os testes de estresse também são extremamente valiosos 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 enorme perda de receita
  • É melhor estar preparado para condições extremas executando testes 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 testes de estresse, às vezes, podem ser usados ​​conjuntos de dados massivos que podem ser perdidos durante os testes de estresse. Os testadores não devem perder esses dados relacionados à segurança ao realizar testes de estresse.

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

Teste de carga versus teste de estresse

Imagem de 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 consiste em 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 dados ou recursos esmagadores.

Tipos de testes de estresse

A seguir estão os tipos de testes de estresse e são explicados a seguir:

Teste de estresse distribuído:

Tipos de testes de estresse

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 rastrear o status do cliente. Após o cliente entrar em contato com 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 informando que estão conectadas ao servidor. Se o servidor não receber nenhum sinal da máquina cliente, ele precisará ser investigado mais detalhadamente para depuração. Na figura, um servidor pode se conectar com os 2 clientes (Cliente1 e Cliente2), mas não pode enviar ou receber um sinal dos Clientes 3 e 4.

A execução noturna é a melhor opção para executar esses cenários de testes 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:

Esses testes concentram-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 realiza testes de estresse em uma ou mais transações entre duas ou mais aplicações. É 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 executados no mesmo servidor. É usado para encontrar defeitos onde os dados de um aplicativo bloqueiam outro aplicativo.

Teste Exploratório de Estresse:

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

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

Como fazer testes de estresse?

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

Etapa 1) Planejando o teste de estresse: Aqui você reúne os dados do sistema, analisa o sistema, 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: Neste estágio, você executa os scripts de automação de testes de estresse e armazena os resultados de estresse.

Etapa 4) Análise de Resultados: Nesta etapa, você analisa os resultados do Teste de Estresse e identifica gargalos.

Etapa 5) Ajustes e otimização: Nesta etapa você ajusta o sistema, altera configurações, otimiza o código com objetivo de atingir o benchmark desejado.

Por último, você executa novamente o ciclo inteiro 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 testes de estresse

LoadRunner

LoadRunner da HP é uma ferramenta de teste de carga amplamente utilizada. Os resultados dos testes de carga moldados pelo Loadrunner são considerados uma referência.

jmetro

Jmeter é uma ferramenta de teste de código aberto. É um puro Java aplicação para estresse e Teste de Desempenho. 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

Esta ferramenta fornece análise extensa do desempenho de aplicações 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 carregar

Esta é uma ferramenta popular disponível no mercado para testar a web e Mobile formulários. Esta ferramenta pode simular milhares de usuários para avaliar o desempenho da aplicação sob carga e analisar os tempos de resposta. Ele também oferece suporte integrado à nuvem – testes de desempenho, carga e estresse. É fácil de usar, econômico e oferece boa escalabilidade.

Métricas para testes de estresse

As métricas auxiliam na avaliação do desempenho de um Sistema e geralmente são estudadas ao final do Teste de Estresse. 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 da Aplicação

  • Tempo de acesso: tempo médio para recuperar uma imagem ou página
  • Tempo para o primeiro byte: Tempo necessário para retornar o primeiro byte de dados ou informações
  • Tempo da página: tempo necessário 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 (fraca Signal)
  • Rodadas falhadas: Número de rodadas falhadas
  • Failed Hits: Número de tentativas fracassadas 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 recuperar o status normal. Ele verifica se o sistema exibe mensagens de erro apropriadas enquanto está sob estresse.

Exemplo de teste de estresse

  1. Site de comércio eletrônico anuncia promoção no festival
  2. Site de notícias na época de alguns eventos importantes
  3. Site de resultados do Conselho de Educação
  4. Sites de redes sociais ou blogs, aplicativos, etc.