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 e estendido por um período de tempo significativo para avaliar o comportamento do aplicativo de software sob uso sustentado. O principal objetivo dos testes de resistência é garantir que a aplicação seja capaz o suficiente para lidar com cargas prolongadas sem qualquer deterioração no tempo de resposta.
Este tipo de teste é realizado 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 faz com que os testes de resistência sejam diferentes dos Teste de carga, que geralmente termina em algumas horas ou mais.
Resistência significa capacidade, portanto, em outras palavras, você pode denominar Teste de Resistência como Teste de Capacidade.
Objetivos dos testes de resistência
- O objetivo principal dos testes de resistência é verificar vazamentos de memória.
- Para descobrir como o sistema funciona sob uso sustentado.
- Para garantir que após um longo período, o tempo de resposta do sistema permanecerá igual ou melhor que o início do teste.
- Para determinar o número de usuários e/ou transações que um determinado sistema suportará e atingirá as metas de desempenho.
- Para gerenciar as cargas futuras, precisamos entender quantos recursos adicionais (como capacidade do processador, capacidade do disco, uso de memória ou largura de banda da rede) são necessários para suportar o uso 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 não ocorram defeitos ou vazamentos de memória após o que é considerado um período de uso relativamente “normal”.
O que monitorar em testes de resistência
Nos testes de resistência, as seguintes coisas são testadas.- Teste o vazamento de memória– São feitas verificações para verificar se há algum vazamento de memória na aplicação, o que pode causar travamento do sistema ou SO
- 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, poderá travar alguns ou todos os módulos do sistema.
- Teste a conexão do banco de dados fechada com sucesso– Se a conexão com o banco de dados não for fechada com sucesso, poderá 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 básica de teste 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 comum da produção do banco de dados e o crescimento anual. Isso é necessário, portanto, você precisa testar como seu aplicativo responderá após um ano, dois ou cinco.
- Criando o Plano de Teste, Cenários – Com base na natureza do teste – manual ou automatizado ou combinação de ambos, Caso de teste design, 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. Testar para estressar o sistema determina o ponto de interrupção no aplicativo.
- Estimativa de teste – Forneça a 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 adequadas para a prevenção. Priorização de casos de teste de acordo com o fator de risco e identificação dos riscos e problemas abaixo que o testador pode fazer durante o teste de resistência.
- O desempenho permanecerá consistente ao longo do tempo?
- Existem outros problemas menores que ainda não foram detectados?
- Há interferência externa que não foi abordada?
- Cronograma de testes – Determine o orçamento e as entregas 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
Embora Teste de estresse leva o sistema testado aos seus limites, Teste de resistência leva a aplicação ao seu limite ao longo do tempo. Por exemplo, os problemas mais complexos – vazamentos de memória, utilização do servidor de banco de dados e sistema sem resposta – 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 bem baixas.Ferramentas de teste de resistência
- WebLOAD
- LoadComplete
- Apache JMeter
- LoadRunner
- Avançar
- Carregar UI
- OpenSTAName
- Rational Performance Tester
Vantagens dos testes de resistência
- Ajuda a determinar como a carga de trabalho pode ser tratada pelo 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 após um sistema ter funcionado em alto nível 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 carga enorme em um período de tempo muito curto.
- O teste de resistência também é utilizado para verificar se há alguma degradação de desempenho após um longo período de execução
Desvantagens dos testes de resistência
- Muitas vezes é difícil definir quanto vale a pena aplicar de estresse.
- Testes de Resistência podem causar falhas em aplicações e/ou redes que podem resultar em interrupções significativas se Ambiente de teste não estão isolados.
- Permanente A perda ou corrupção de dados pode ocorrer devido à sobrecarga 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
- In 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
- Verificações são feitas para verificar
- Teste o vazamento de memória
- Tempo de resposta do teste
- Teste a conexão do banco de dados, etc.