O que é o teste de imersão? Definição, Significado, Exemplos
Teste de imersão
Teste de imersã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 mostra um ciclo de teste que mostra em qual estágio o teste de imersão (Tipo de teste de desempenho) é executado em um aplicativo.
Nesse tipo de teste, o que basicamente monitora é a utilização de memória por uma aplicação em um sistema. Ele está testando no nível do sistema, para descobrir se o sistema resistirá a um volume muito alto de uso e para ver o que aconteceria fora das expectativas de design.
Por que fazer o teste de imersão?
Um sistema pode se comportar normalmente quando usado por 2 horas, mas quando o mesmo sistema é usado continuamente por 10 horas ou mais do que isso, ele pode falhar ou se comportar de forma anormal/aleatória/pode travar. Para prever tal falha, o teste de imersão é realizado.
Quando fazer o teste de imersão?
O teste de imersã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 bem-sucedida de testes de carga 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 estiver no Soak, isso deverá ser relatado imediatamente.
- O melhor momento para fazer um teste de absorção é nos finais de semana, pois um aplicativo precisa estar em execução por pelo menos um dia ou uma noite. Depende totalmente das limitações da situação de teste. Os testes de imersão são um dos requisitos de conformidade mais importantes que devem ser seguidos rigorosamente por todas as empresas.
Estratégia de teste de imersã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. Dessa forma, muitos dados são criados. Pode haver muita carga no servidor do sistema/banco de dados, o que pode resultar em travamento/travamento do servidor do sistema/banco de dados.
No teste de absorção de sessão longa, atividades de vários dias (digamos 30 dias) são realizadas em um período 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 Soak Testing é 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, então o uso de memória de recursos como Java Máquinas Virtuais também são importantes e precisam ser monitoradas.
Abaixo estão mais algumas verificações que precisam ser feitas por qualquer usuário/testador antes de começar o teste de imersão:
a) Monitore o consumo de recursos do banco de dados.
b) Monitorar o consumo de recursos do servidor (ex-uso de CPU).
c) O teste de imersã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 imersã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.
- Quase todos os sistemas têm 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 saturação.
EXEMPLOS de testes 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 sejam 33,000 logins, que precisam ser inseridos no sistema, isso representa sete dias e meio de atividade. Neste caso, um teste de imersão de 60 a 70 horas pode ser iniciado na sexta-feira à noite, por volta das 6h, e pode ser concluído até Monday manhã às 6h. Somente com esse teste será possível observar qualquer degradação de desempenho nas condições controladas.
- No caso dos videogames, Mobile aplicativos, etc. envolvem deixar o jogo ou aplicativo em 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 imersão
- Alocação de memória (vazamentos de memória que eventualmente resultariam em 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 eventualmente resultariam na paralisação 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 actividade sustentada seja tão bom como era no início do teste.
- Falha ao fechar conexões entre camadas de um sistema multicamadas em algumas circunstâncias que podem 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
- In Engenharia de Software, O teste de saturação é feito para determinar se o aplicativo em teste pode sustentar a carga contínua.
- É um tipo de teste de desempenho.
- Ajuda o sistema a determinar se resistirá a um volume de uso muito alto
- Neste tipo de teste, o que basicamente monitora é 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çar o teste de absorção incluem
- Monitore o consumo de recursos do banco de dados.
- Monitore o consumo de recursos do servidor (ex-uso de CPU).
- O teste de absorção deve ser executado com simultaneidade realista do usuário.