O que é teste de carga? (Exemplos)

Teste de carga

O que é Teste de Carga?

Teste de carga é um processo de teste de software não funcional no qual o desempenho do aplicativo de software é testado sob uma carga específica esperada. Ele determina como o aplicativo de software se comporta ao ser acessado por vários usuários simultaneamente. O objetivo do teste de carga é melhorar os gargalos de desempenho e garantir a estabilidade e o bom funcionamento do aplicativo de software antes da implantação.

Este teste geralmente identifica -

  • A capacidade operacional máxima de uma aplicação
  • Determine se a infraestrutura atual é suficiente para executar o aplicativo
  • Sustentabilidade da aplicação em relação ao pico de carga de usuários
  • Número de usuários simultâneos que um aplicativo pode suportar e escalabilidade para permitir que mais usuários o acessem.

É um tipo de teste não funcional. Na Engenharia de Software, o teste de carga é comumente usado para aplicativos cliente/servidor baseados na Web – tanto Intranet quanto Internet.

Necessidade de teste de carga

Alguns sites extremamente populares sofreram sérios períodos de inatividade quando obtiveram grandes volumes de tráfego. Os sites de comércio eletrônico investem pesadamente em campanhas publicitárias, mas não em testes de carga para garantir o desempenho ideal do sistema, quando esse marketing atrai tráfego.

Considere os seguintes exemplos de teste de carga

  • A popular loja de brinquedos Toysrus.com não conseguiu lidar com o aumento do tráfego gerado por sua campanha publicitária, resultando na perda de dólares de marketing e em vendas potenciais de brinquedos.
  • O site de uma companhia aérea não conseguiu atender mais de 10000 usuários durante uma oferta de festival.
  • A Enciclopédia Britânica declarou o acesso gratuito ao seu banco de dados online como uma oferta promocional. Eles não conseguiram acompanhar o ataque do tráfego por semanas.

Muitos sites sofrem atrasos no carregamento quando encontram tráfego intenso. Poucos fatos –

  • A maioria dos usuários sai do site após 8 segundos de atraso no carregamento de uma página
  • $ 4.4 Billíon perdido anualmente devido ao mau desempenho

Por que testes de carga?

  • O teste de carga dá confiança no sistema e em sua confiabilidade e desempenho.
  • O teste de carga ajuda a identificar gargalos no sistema em cenários de grande estresse do usuário, antes que eles aconteçam em um ambiente de produção.
  • O teste de carga oferece excelente proteção contra desempenho insatisfatório e acomoda estratégias complementares para gerenciamento de desempenho e monitoramento de um ambiente de produção.

Objetivos do teste de carga

O teste de carga identifica os seguintes problemas antes de mover o aplicativo para o mercado ou produção:

  • Tempo de resposta para cada transação
  • Desempenho dos componentes do sistema sob diversas cargas
  • Desempenho dos componentes do banco de dados sob diferentes cargas
  • Atraso de rede entre o cliente e o servidor
  • Problemas de design de software
  • Problemas de configuração do servidor, como servidor Web, servidor de aplicativos, servidor de banco de dados, etc.
  • Problemas de limitação de hardware, como maximização da CPU, limitações de memória, gargalos de rede, etc.

O teste de carga determinará se o sistema precisa ser ajustado ou se é necessária modificação de hardware e software para melhorar o desempenho. Para conduzir testes de carga com eficácia, você pode utilizar vários ferramentas de teste de desempenho que estão disponíveis para ajudá-lo a identificar áreas de melhoria.

Pré-requisitos de teste de carga

A principal métrica para testes de carga é o tempo de resposta. Antes de começar o teste de carga, você deve determinar –

  • Se o tempo de resposta já foi medido e comparado – Quantitativo
  • Se o tempo de resposta é aplicável ao processo de negócios – Relevante
  • Se o tempo de resposta é justificável – Realista
  • Se o tempo de resposta é alcançável – Alcançável
  • Se o tempo de resposta é mensurável usando uma ferramenta ou cronômetro – Mensurável

Um ambiente precisa ser configurado antes de iniciar o teste de carga:

Plataforma de hardware Configuração de Software
  • Máquinas Servidoras
  • Processadores
  • Memória
  • Armazenamento em Disco
  • Configuração de máquinas de carga
  • Configuração de rede
  • Sistema Operacional
  • Software Servidor

Estratégias de teste de carga

Existem muitas maneiras de realizar testes de carga. A seguir estão algumas estratégias de teste de carga-

Estratégias de teste de carga

  • Teste de carga manual: Esta é uma das estratégias para executar testes de carga, mas não produz resultados repetíveis, não pode fornecer níveis mensuráveis ​​de estresse em um aplicativo e é um processo impossível de coordenar.
  • Ferramentas de teste de carga desenvolvidas internamente: Uma organização que percebe a importância dos testes de carga pode construir suas próprias ferramentas para executar testes de carga.
  • Ferramentas de teste de carga de código aberto: Existem diversas ferramentas de teste de carga disponíveis como código aberto e gratuitas. Eles podem não ser tão sofisticados quanto seus equivalentes pagos, mas se você estiver com orçamento limitado, eles são a melhor escolha.
  • Ferramentas de teste de carga de classe empresarial: Eles geralmente vêm com recurso de captura/reprodução. Eles suportam um grande número de protocolos. Eles podem simular um número excepcionalmente grande de usuários.

Como fazer testes de carga

O processo de teste de carga pode ser brevemente descrito abaixo –

  1. Crie um dedicado Ambiente de teste para teste de carga
  2. Determine o seguinte
  3. Cenários de teste de carga
  4. Determinar transações de teste de carga para um aplicativo
    • Prepare dados para cada transação
    • O número de usuários que acessam o sistema precisa ser previsto
    • Determine as velocidades de conexão. Alguns usuários podem estar conectados através de linhas alugadas, enquanto outros podem usar conexão discada.
    • Determine diferentes navegadores e sistemas operacionais usados ​​pelos usuários 
    • Uma configuração de todos os servidores, como servidores web, de aplicativos e de banco de dados
  5. Execução e monitoramento de cenários de testes. Coletando várias métricas
  6. Analise os resultados. Fazer recomendações
  7. Ajuste o sistema
  8. Teste novamente

Diretrizes para testes de carga

Diretrizes para testes de carga

  1. O teste de carga deve ser planejado assim que o aplicativo se tornar funcionalmente estável.
  2. Um grande número de dados exclusivos deve estar pronto no pool de dados
  3. O número de usuários deve ser decidido para cada cenário ou script
  4. Evite a criação de logs detalhados para conservar o espaço de E/S do disco
  5. Tente evitar download de imagens no site
  6. No processo de execução de casos de teste de teste de carga, a consistência do tempo de resposta ao longo do período decorrido deve ser registrada e a mesma deve ser comparada com várias execuções de teste.

Diferença entre testes de carga e estresse

Teste de carga Teste de estresse
O teste de carga identifica os gargalos no sistema sob diversas cargas de trabalho e verifica como o sistema reage quando a carga aumenta gradualmente Teste de estresse determina o ponto de ruptura do sistema para revelar o ponto máximo após o qual ele quebra.
Para reconhecer o limite superior do sistema, defina o SLA do aplicativo e verifique como o sistema aguenta uma carga pesada. Para verificar como o sistema se comporta sob cargas extremas e como ele se recupera de falhas.
Gerar maior carga em um aplicativo da web é o principal objetivo do teste de carga. Os testes de estresse visam garantir que, sob uma carga repentina e alta por um período considerável, os servidores não travem.
Os atributos verificados em um teste de carga são desempenho máximo, quantidade de servidores e tempo de resposta. Este tipo de teste verifica a estabilidade, o tempo de resposta, etc.
No teste de carga, o limite de carga é um limite de quebra. Nos testes de estresse, o limite de carga está acima do limite de interrupção.

Diferença entre testes funcionais e de carga

Teste funcional Teste de carga
Os resultados dos testes funcionais são facilmente previsíveis, pois temos etapas e pré-condições adequadas definidas Os resultados dos testes de carga são imprevisíveis
Os resultados dos testes funcionais variam ligeiramente Os resultados dos testes de carga variam drasticamente
Frequência de execução Teste funcional vai estar alto A frequência de execução de testes de carga será baixa
Os resultados dos testes funcionais dependem dos dados do teste O teste de carga depende do número de usuários.

Ferramentas de teste de carga

Carregar Corredor:

Load runner é uma ferramenta HP usada para testar os aplicativos em condições de carga normal e de pico. O executor de carga gera carga criando usuários virtuais que emulam o tráfego de rede. Ele simula o uso em tempo real como um ambiente de produção e fornece resultados gráficos.

Leia mais sobre Loadrunner aqui.

Vantagens e desvantagens do teste de carga

A seguir estão as vantagens do teste de carga:

  • Identificação de gargalos de desempenho antes da produção
  • Melhora a escalabilidade do sistema
  • Minimize o risco relacionado ao tempo de inatividade do sistema
  • Custos reduzidos de falha
  • Aumente a satisfação dos clientes.

Desvantagens do teste de carga:

  • É necessário conhecimento de programação para usar ferramentas para conduzir um teste de carga no contexto de teste de software.
  • As ferramentas podem ser caras, pois o preço depende do número de usuários virtuais suportados.

Resumo

  • O teste de carga é definido como um tipo de teste de software que determina o desempenho de um sistema sob condições de carga reais.
  • O teste de carga normalmente melhora os gargalos de desempenho, a escalabilidade e a estabilidade do aplicativo antes que ele esteja disponível para produção.
  • Esses testes ajudam a identificar a capacidade operacional máxima das aplicações, bem como gargalos do sistema.
  • Teste de carga em teste de software é importante porque se ignorado pode causar prejuízos financeiros para uma organização.