Desempenho vs Teste de Carga
No contexto da engenharia de software, o teste de desempenho é feito para descobrir os gargalos de um sistema. Testes de desempenho também podem ser usados para verificar atributos como confiabilidade, uso de recursos e escalabilidade e estabelecer uma linha de base para o desempenho de um sistema. O teste de carga é um dos subgêneros do teste de desempenho. É realizado para medir o comportamento de um sistema sob uma carga de trabalho especificada. O teste de carga é mais relevante para sistemas multiusuário baseados no modelo cliente-servidor, mas outros sistemas de software, como processadores de texto ou editores gráficos, também podem ser testados.
Teste de Desempenho
Como mencionado acima, o teste de desempenho é feito para determinar e eliminar gargalos de um sistema de software e estabelecer uma linha de base de seu desempenho que seria útil para testes adicionais. O teste de desempenho inclui testes como testes de carga, testes de resistência (testes de imersão), testes de pico, testes de configuração e testes de isolamento. O teste de desempenho requer a obtenção de um conjunto cuidadosamente controlado de medições do sistema. Para obter os melhores resultados do teste de desempenho, ele deve ser bem planejado e feito em um sistema estável, onde o processo de teste possa prosseguir sem problemas. É importante entender claramente o que você realmente deseja medir em termos de desempenho do sistema ao fazer testes de desempenho. Por exemplo, se você estiver testando o desempenho de um aplicativo da Web, talvez queira saber o tempo de resposta aceitável e o número de usuários simultâneos que podem ser atendidos pelo sistema. Tendo em mente esses dois aspectos, você pode iniciar o teste aumentando o número de usuários constantemente e identificando o gargalo.
Teste de carga
Como mencionado anteriormente, o teste de carga faz parte do teste de desempenho e geralmente é realizado aumentando a carga em um sistema de software usando ferramentas automatizadas. O teste de carga às vezes é conhecido como teste de volume. Alguns exemplos de testes de carga seriam testar um servidor de correio com um grande número de caixas de correio de usuários ou testar a edição de um documento muito grande usando um processador de texto. Os testes de carga são realizados usando um nível de carga predefinido, geralmente usando a carga máxima que o sistema pode suportar sem travar. Normalmente, o teste de carga visa expor bugs que não são expostos em testes comuns, como problemas de gerenciamento de memória, vazamentos de memória, estouro de buffer, etc.
Diferença entre desempenho e teste de carga
Mesmo que os termos teste de desempenho e teste de carga sejam usados alternadamente, teste de carga é apenas um aspecto do teste de desempenho. Os objetivos dos dois testes também são diferentes. O teste de desempenho utiliza técnicas de teste de carga com o objetivo de obter medições e benchmarking e utiliza vários níveis de carga. Mas o teste de carga opera em um único nível de carga predefinido, geralmente a carga mais alta que o sistema pode gerenciar sem travar. Na prática, os testes de desempenho são feitos com o intuito de encontrar os gargalos do sistema e eliminá-los. E quando o sistema não pode mais ser otimizado, o teste de carga é iniciado, para determinar o que você precisa adicionar ao sistema (na maioria das vezes extensões de hardware, como número de servidores web ou servidores de banco de dados) para sustentar os requisitos pré-definidos pelo cliente.