O que é teste de resistência em teste de software? (com exemplo)

Teste de resistência

Teste de resistência é um tipo não funcional de teste de software em que um software é testado com alta carga estendida por um período significativo de tempo para avaliar o comportamento do aplicativo de software sob uso sustentado. O objetivo principal do teste de resistência é garantir que o aplicativo seja capaz o suficiente para lidar com carga estendida sem qualquer deterioração do tempo de resposta.

Este tipo de teste é executado no último estágio do ciclo de execução de desempenho. O teste de resistência é um processo longo e às vezes dura até um ano. Isso pode incluir a aplicação de cargas externas, como tráfego da Internet ou ações do usuário. Isso torna o teste de resistência diferente de Teste de carga , que geralmente termina em algumas horas ou mais.

Resistência significa capacidade, então em outras palavras, você pode denominar Teste de Resistência como Teste de Capacidade.

Neste tutorial, você aprenderá-

Objetivos do teste de resistência

  • O objetivo principal do teste de resistência é verificar se há vazamentos de memória.
  • Para descobrir como o sistema funciona sob uso prolongado.
  • Para garantir que após um longo período, o tempo de resposta do sistema permanecerá o mesmo ou melhor do que o início do teste.
  • Para determinar o número de usuários e / ou transações, um determinado sistema oferecerá suporte e atenderá às metas de desempenho.
  • Para gerenciar as cargas futuras, precisamos entender quantos recursos adicionais (como capacidade do processador, capacidade do disco, uso da memória ou largura de banda da rede) são necessários para dar suporte ao uso no futuro.
  • O teste de resistência geralmente é feito sobrecarregando o sistema ou reduzindo certos recursos do sistema e avaliando as consequências.
  • É executado para garantir que defeitos ou vazamentos de memória não ocorram após o que é considerado um período de uso relativamente 'normal'.

O que monitorar no teste de resistência

No Teste de Resistência, as coisas a seguir são testadas.

  • Teste de vazamento de memória - As verificações são feitas para verificar se há algum vazamento de memória no aplicativo, o que pode causar falha do sistema ou O.S.
  • Teste o fechamento da conexão entre a camada do sistema - Se a conexão entre as camadas do sistema não for fechada com sucesso, pode travar alguns ou todos os módulos do sistema.
  • Conexão de banco de dados de teste fechada com sucesso - Se a conexão com o banco de dados não for fechada com sucesso, pode resultar em falha do sistema
  • Tempo de resposta do teste - O sistema é testado quanto ao tempo de resposta do sistema à medida que a aplicação se torna menos eficiente como resultado do uso prolongado do sistema.

Como realizar testes de resistência

Abaixo está a abordagem de teste básico para teste de resistência

  • Ambiente de Teste - Identifique o hardware, software, sistema operacional necessário para o teste de resistência, atribuindo funções e responsabilidades dentro da equipe, etc. O ambiente deve estar pronto antes da execução do teste. Você também precisa estimar o tamanho de produção de banco de dados comum e o crescimento anual. Isso é necessário, pois você precisa testar como sua aplicação responderá depois de um, dois ou cinco anos.
  • Criando o plano de teste, cenários - Com base na natureza do teste - manual ou automação ou combinação de ambos, Caso de teste projeto, revisões e execução devem ser planejados. Testes para estressar o sistema, testes de ponto de interrupção, etc. também devem fazer parte do plano de teste. O teste de estresse do sistema determina o ponto de interrupção no aplicativo.
  • Estimativa de teste - Fornece uma estimativa de quanto tempo levará para concluir a fase de teste. Deve ser analisado com base no número de testadores envolvidos e no número de ciclos de teste necessários.
  • Análise de risco - Analisar o risco e tomar as medidas cabíveis para a prevenção. A priorização dos casos de teste de acordo com o fator de risco e a identificação dos riscos e problemas abaixo que o testador pode realizar durante o teste de resistência.
    • O desempenho permanecerá consistente ao longo do tempo?
    • Existem outros problemas menores que ainda não foram detectados?
    • Existe interferência externa que não foi resolvida?
  • Cronograma de teste - Determine o orçamento e os resultados dentro dos prazos. Como Teste de resistência aplica um arranjo de carga enorme, mas natural, de transações ao sistema / aplicativo por um período contínuo de tempo.

Exemplo de teste de resistência

Enquanto Teste de estresse leva o sistema testado ao seu limite, Teste de resistência leva o aplicativo ao seu limite hora extra .

Por exemplo, os problemas mais complexos - vazamentos de memória, utilização do servidor de banco de dados e sistema que não responde - acontecem quando o software é executado por um longo período de tempo. Se você pular os testes de resistência, suas chances de detectar tais defeitos antes da implantação são muito baixas.

Ferramentas de teste de resistência

  • WebLOAD
  • LoadComplete
  • Apache JMeter
  • LoadRunner
  • Appvance
  • LoadUI
  • openSTA
  • Rational Performance Tester

Vantagens do teste de resistência

  • Ajuda a determinar como a carga de trabalho pode manipular o sistema sob carga.
  • Fornece dados precisos que o cliente pode usar para validar ou aprimorar suas necessidades de infraestrutura.
  • Identifica problemas de desempenho que podem ocorrer depois que um sistema está funcionando em um nível alto por um longo período de tempo
  • Problemas típicos são identificados em testes de desempenho direcionados menores, o que significa que garante que o aplicativo permaneça disponível mesmo quando há uma grande carga em um intervalo de tempo muito curto.
  • O teste de resistência também é usado para verificar se há alguma degradação de desempenho após um longo período de execução

Desvantagens do teste de resistência

  • Muitas vezes é difícil definir quanto estresse vale a pena aplicar.
  • O Teste de Resistência pode causar falhas no aplicativo e / ou na rede que podem resultar em uma interrupção significativa se Ambiente de teste não estão isolados.
  • A perda ou corrupção de dados permanentes pode ocorrer devido ao estresse excessivo do sistema.
  • A utilização de recursos permanece muito alta depois que o estresse é removido.
  • Alguns componentes do aplicativo não respondem.
  • Exceções não tratadas são observadas pelo usuário final.

Resumo:

  • Em Engenharia de Software, o teste de resistência é um subconjunto do teste de carga.
  • O teste de resistência é um processo longo e às vezes dura até um ano
  • As verificações são feitas para verificar
    • Teste de vazamento de memória
    • Tempo de resposta do teste
    • Teste a conexão do banco de dados, etc.

Este artigo é possível devido à contribuição de Unnati Soni.