Teste de imersão
Teste de absorção é um tipo de teste não funcional usado para medir o desempenho de um aplicativo de software sob um grande volume de carga por um longo período de tempo. O objetivo do teste Soak é garantir se o aplicativo de software sustenta um alto volume de uso e verificar o que aconteceria fora das expectativas de design.
A imagem abaixo descreve um ciclo de teste que mostra em qual estágio o Teste de absorção ( tipo de teste de desempenho ) é executado em um aplicativo.
Nesse tipo de teste, o que basicamente monitorado é a utilização de memória por uma aplicação em um sistema. Ele está testando em um nível de sistema, para descobrir se o sistema suportará um volume muito alto de uso e para ver o que aconteceria fora de suas expectativas de design.
Neste tutorial, você aprenderá-
- Por que fazer o teste de absorção?
- Quando fazer o teste de absorção?
- Estratégia de teste de absorção
- Características do teste de imersão
- EXEMPLOS de teste de imersão
- Problemas comuns observados durante o teste de absorção
Por que fazer o teste de absorção?
Um sistema pode se comportar normalmente quando usado por 2 horas, mas quando o mesmo sistema é usado continuamente por 10 horas ou mais, ele pode falhar ou se comportar de forma anormal / aleatória / pode falhar. Para prever tal falha, o teste de absorção é executado.
Quando fazer o teste de absorção?
O teste de absorção deve ser feito nos seguintes cenários: -
- Antes que o build seja implantado no cliente, ou seja, antes do lançamento de qualquer aplicativo em uma plataforma específica, ele precisa passar por uma série de testes de carga bem-sucedidos em níveis de tráfego altos ou equivalentes. Depois disso, o teste de imersão é realizado . Isso nos ajuda a determinar como executar qualquer aplicativo específico por um longo período. Se problemas como vazamentos de memória / corrupção de memória forem encontrados durante o período, ou seja, quando ele estiver em absorção, ele deve ser relatado imediatamente.
- A melhor época para fazer um teste de absorção é nos finais de semana, pois o aplicativo precisa estar em execução durante o dia ou a noite. Depende totalmente das limitações da situação de teste. Os testes de absorção são um dos requisitos de conformidade mais importantes, que devem ser seguidos estritamente por todas as empresas.
Estratégia de teste de absorção
O Long Session Soak Testing é uma estratégia em que um sistema fica sob carga por mais tempo.
Um exemplo simples é quando o usuário permanece conectado a um sistema por muitas horas, executando uma série de transações comerciais. Desta forma, muitos dados são criados. Pode haver muita carga no sistema / servidor de banco de dados, o que pode resultar em travamento / travamento do sistema / servidor de banco de dados.
No Teste de absorção de longa sessão, atividades de vários dias (digamos, 30 dias) são realizadas em um intervalo de tempo restrito (digamos 2 dias). O número de transações neste período restrito deve corresponder ou ultrapassar o valor de transações de vários dias. O foco deve estar no número de transações processadas. A parte mais importante do teste de absorção é verificar a memória disponível na CPU e a quantidade de memória que estará em uso. Precisamos registrar o uso de memória no início e no final de um teste de absorção. Se necessário, o uso de memória de recursos como Java Virtual Machines também é importante e precisa ser monitorado.
Abaixo estão mais algumas verificações que precisam ser feitas por qualquer usuário / testador antes de começar o teste de absorção:
a) Monitore o consumo de recursos do banco de dados.
b) Monitore o consumo de recursos do servidor (ex-uso da CPU).
c) O teste de absorção deve ser executado com simultaneidade realista do usuário.
Características do teste de imersão
Um método de teste de imersão padrão deve ter as seguintes características: -
- A duração da maioria dos testes de absorção é geralmente determinada pelo tempo disponível.
- Qualquer aplicativo deve ser executado sem qualquer interrupção se exigir um longo período de tempo.
- Deve abranger todos os cenários acordados pelas partes interessadas.
- Geralmente, todo sistema tem um período de janela de manutenção regular e o tempo entre esses períodos de janela é um fator chave para determinar o escopo de um Teste de Imersão.
EXEMPLOS de teste de imersão
- No caso de domínio bancário, quando há uma grande quantidade de dados de comerciantes, o testador colocará o sistema sob carga continuamente por 70 horas a 150 horas para verificar como o aplicativo se comporta durante esse período de carregamento.
- Suponha que haja 33.000 logins, que precisam ser colocados no sistema, isso representa sete dias e meio de atividade. Nesse caso, um teste de imersão de 60-70 horas pode ser iniciado na sexta-feira à noite por volta das 18h, que pode ser concluído na segunda-feira às 6h. Somente com tal teste, será possível observar qualquer degradação de desempenho sob as condições controladas.
- No caso de videogames, aplicativos móveis, etc. envolvem deixar o jogo ou aplicativo em um estado de execução por um período de tempo prolongado, em vários modos de operação - como inativo, pausado na tela de título e assim por diante para descobrir se um aplicativo pode lidar com a carga continuamente esperada.
Problemas comuns observados durante o teste de absorção
- Alocação de memória (vazamentos de memória que eventualmente resultariam em uma crise de memória ou erros de arredondamento que se manifestam apenas com o tempo).
- Utilização de recursos do banco de dados (falha ao fechar os cursores do banco de dados sob algumas condições que podem resultar no bloqueio de todo o sistema).
- Também pode levar à degradação do desempenho, ou seja, garantir que o tempo de resposta após um longo período de atividade sustentada seja tão bom quanto era no início do teste.
- Falha ao fechar as conexões entre as camadas de um sistema de várias camadas em algumas circunstâncias, o que pode paralisar alguns ou todos os módulos do sistema.
- A degradação gradual do tempo de resposta de algumas funções à medida que as estruturas de dados internas se tornam menos eficientes durante um teste longo.
Resumo
- Na engenharia de software, o teste de absorção é feito para determinar se o aplicativo em teste pode sustentar a carga contínua.
- É uma espécie de teste de desempenho.
- Ajuda o sistema a determinar se suportará um volume muito alto de uso
- Nesse tipo de teste, o que basicamente monitorado é a utilização de memória por uma aplicação em um sistema
- As verificações que precisam ser feitas por qualquer usuário / testador antes de começarem o Teste de Imersão incluem
- Monitore o consumo de recursos do banco de dados.
- Monitore o consumo de recursos do servidor (exceto o uso da CPU).
- O teste de absorção deve ser executado com simultaneidade de usuário realista.
Este artigo é uma contribuição de Pallavi De