Os testes de desempenho poupam milhões de dólares às empresas. De acordo com um relatório da Dun & Bradstreet, 59% das empresas da Fortune 500 registam um mínimo de 1,6 horas de inatividade todas as semanas. Façamos rapidamente as contas. Em média, uma empresa da Fortune 500 emprega 52 810 pessoas. Se cada funcionário ganhasse apenas 10 dólares por hora, isso custaria a uma empresa 528 100 dólares por semana em produtividade perdida — ou 27 461 200 dólares por ano.
É muito dinheiro que simplesmente... desaparece.

É do interesse de todos que os testes de desempenho do software sejam realizados de forma exaustiva. Vamos explorar a importância dos testes de desempenho, os diferentes tipos, os problemas comuns e as ferramentas úteis.
O que são testes de desempenho?
Os testes de desempenho verificam se o software consegue funcionar a um nível elevado sob a carga de trabalho esperada. Os programadores querem evitar criar software que seja responsivo e rápido quando apenas um utilizador está ligado, mas que se torne lento ao lidar com vários utilizadores.
Os testes de QA não se preocupam apenas com erros. A velocidade, a capacidade de resposta e a utilização de recursos do software são preocupações adicionais. Os testes de desempenho concentram-se em identificar e resolver estrangulamentos de desempenho. Os estrangulamentos são identificados através da simulação do tráfego de utilizadores. Idealmente, os testadores de QA querem realizar testes de desempenho em circunstâncias reais. Esta é uma das primeiras viagens do software para fora do refúgio das circunstâncias ideais e para o mundo incerto da experiência do utilizador final.
Porque devo testar o desempenho?
Fornece às partes interessadas informações concretas sobre a velocidade, a estabilidade e a escalabilidade do software. Sem testes de desempenho, o software corre o risco de apresentar problemas de velocidade e fiabilidade quando for lançado.
Já mencionámos o custo em produtividade de uma falha do sistema. Em muitos casos, isso, por si só, é motivo suficiente. Embora nem todo o software seja utilizado internamente, é distribuído e vendido a clientes. Nesse cenário, os testes de desempenho tornam-se ainda mais importantes, porque a última coisa que se pretende é ter uma multidão de clientes insatisfeitos com a qualidade do produto.
Na fase de desenvolvimento, os testes de desempenho proporcionam uma visão mais clara do que precisa de ser melhorado em termos de velocidade, estabilidade e utilização de recursos. Sem eles, o software poderia ser lançado com vários erros graves, como um tempo de execução lento com vários utilizadores, falhas causadas por sobrecarga de utilizadores e uma experiência de utilização inconsistente em diferentes sistemas operativos e navegadores.
Os testes para detetar erros não fornecem uma visão clara de como o software funcionará sob carga. É importante que os testes de desempenho sejam realizados de forma independente e com o único objetivo de encontrar estrangulamentos. Bons testadores de desempenho sabem que a velocidade não é o único indicador do desempenho. Por exemplo, uma aplicação que carrega rapidamente, mas utiliza 100% da CPU do utilizador, não tem um bom desempenho. Um exemplo deste tipo causaria muitas dores de cabeça ao utilizador final, como sobreaquecimento, redução da vida útil da CPU, desempenho mais lento em várias aplicações e falhas ocasionais.
Como realizar testes de desempenho
A forma de realizar testes de desempenho varia consoante o software. Existem várias abordagens diferentes que um testador de QA pode adotar. É uma forma de testes não funcionais, o que significa que não se preocupa em grande medida com a interface do utilizador.
Os testadores de desempenho querem garantir que os componentes internos estão tão afinados quanto possível. São a equipa de mecânicos numa corrida de F1.

O tipo de testes realizados dependerá da metodologia utilizada pela organização. Se seguirem a abordagem tradicional em cascata para o desenvolvimento de software, é provável que os testadores de desempenho só tenham acesso ao produto depois de concluído o desenvolvimento. No entanto, se a organização utilizar a metodologia ágil, é provável que os testes de desempenho ágeis ocorram ao longo de todo o processo de desenvolvimento.
Have an account? Log In
Tipos de testes de desempenho
Alguns requerem testes manuais e outros requerem testes automatizados, embora, com o rápido aumento dos testes automatizados e o desenvolvimento diário de ferramentas mais eficazes e fiáveis, exista uma preferência significativa pelos testes automatizados nestas situações, porque são necessários muitos utilizadores virtuais para executar o software como se fossem utilizadores finais reais. Isto é difícil de reproduzir manualmente, uma vez que exigiria muito mais testadores do que os que a equipa provavelmente empregará.
O facto de grande parte dos testes de desempenho ser realizada por máquinas não significa que não existam distinções importantes entre os tipos de testes. Um testador de QA deve compreender os diferentes tipos de testes de desempenho para saber qual é a melhor ferramenta para cada tarefa.
Vamos analisar os diferentes tipos de testes de desempenho e aquilo que cada tipo de teste pretende alcançar.
Testes de capacidade
Testam quantos utilizadores o sistema consegue suportar antes de o desempenho descer abaixo dos níveis aceitáveis. Ao testar a capacidade de um software, ajudam os programadores a antecipar problemas relacionados com a escalabilidade e o crescimento futuro da base de utilizadores.
Testes de carga
Confirma que o sistema consegue suportar o número de utilizadores necessário e continuar a funcionar com um elevado nível de desempenho. As ferramentas de teste de carga garantem que não existem problemas de desempenho no dia a dia.
Testes de volume
Verifica se o software consegue suportar e processar uma grande quantidade de dados em simultâneo sem falhar, ficar mais lento ou perder informações.
Testes de esforço
Tenta intencionalmente fazer o software falhar, simulando um número de utilizadores que excede significativamente as expectativas. O dia do lançamento de um novo iPhone e o aumento súbito do tráfego de utilizadores no site da Apple são um excelente exemplo de um teste de esforço no mundo real.
Testes de resistência
Simula tráfego elevado durante um período prolongado. Verifica a capacidade do software para tolerar períodos prolongados de tráfego elevado.
4 problemas comuns de desempenho
Os profissionais de testes de desempenho deparam-se normalmente com pelo menos um destes quatro problemas durante os testes.
- Tempo de carregamento longo – Ninguém gosta de ficar a olhar para o ecrã durante 30-60 segundos à espera que uma aplicação carregue. É aborrecido, especialmente se for uma aplicação que abre várias vezes por dia. Com exceção de alguns softwares muito exigentes, a maioria das aplicações, páginas Web e softwares deve conseguir abrir em poucos segundos. Os testes de carga detetam normalmente qualquer software que tenha dificuldade em abrir dentro de um período de tempo aceitável.
- Tempo de resposta fraco – É um problema semelhante ao dos tempos de carregamento longos. É igualmente frustrante quando, depois de finalmente abrir a aplicação, navegar entre menus ou introduzir dados também demora 30-60 segundos a concluir. Pense nas aplicações que utiliza todos os dias – quantas delas o fazem esperar pelo carregamento de uma página? Provavelmente, não muitas. Os tempos de carregamento longos fazem com que as pessoas percam o interesse.
- Fraca escalabilidade – Este fenómeno é informalmente chamado de «efeito Slashdot» ou «abraço mortal da Internet». Já ouviu falar de um site interessante que alguém partilhou consigo no Facebook e, quando clicou na ligação, a página não carregou? Isso acontece porque você e um milhão de outras pessoas quiseram visitar o pequeno site interessante, mas este não tinha a infraestrutura necessária para lidar com uma afluência súbita de utilizadores. Um gráfico do tráfego do site teria um aspeto semelhante a este:

4. Estrangulamento – Os estrangulamentos ocorrem quando um sistema distribui mal a sua capacidade de processamento. Se o seu software exigir que a CPU dos utilizadores funcione a 100%, estes deixam de ter memória disponível para executar tarefas adicionais. Isto é prejudicial e conduz frequentemente a sobreaquecimento e a uma queda significativa do desempenho. Existem vários pontos onde pode ocorrer um estrangulamento. Alguns dos mais comuns são:
- CPU
- Memória
- GPU
- Utilização do disco
More Articles
Melhores ferramentas de teste de desempenho
A ferramenta de teste de desempenho mais adequada para si depende do seu projeto e dos seus objetivos. Algumas, como o Jmeter, são muito eficazes na execução de testes de carga e de esforço. A escolha também depende do seu orçamento. As empresas mais pequenas podem optar por uma das muitas ferramentas de teste de desempenho gratuitas e de código aberto de elevada qualidade para reduzir os custos.
Ferramentas de teste de desempenho de código aberto
Uma das ferramentas de teste de código aberto mais bem avaliadas é o Jmeter. Tem sido uma opção de referência para pequenas empresas que procuram executar testes eficazes. Os testes de desempenho do Jmeter analisam cuidadosamente o desempenho do servidor sob carga. Permitem executar testes de carga e de esforço para verificar se o software consegue suportar o número normal e máximo de utilizadores esperados.
Quando os testes de desempenho terminam, o Jmeter permite visualizar os resultados dos testes de várias formas fáceis de compreender. Uma opção é apresentar os resultados sob a forma de um gráfico. Os gráficos do Jmeter têm o seguinte aspeto:

Ao ler o gráfico, o parâmetro mais importante é o débito (linha verde), que mostra o número de pedidos enviados durante o teste. Quanto maior for o número, melhor. Mostra quantos pedidos o software consegue processar por minuto. Neste exemplo, são 8,003 pedidos por minuto.
Outras ferramentas de destaque:
Existem algumas desvantagens nos testes de desempenho de código aberto. Uma delas é o facto de todos os utilizadores simulados serem executados nos servidores da empresa. Isto significa que os testes são realizados em condições de desempenho ideais, e não em condições do mundo real. Em empresas pequenas que não preveem uma carga significativa, esta solução pode satisfazer perfeitamente as suas necessidades. À medida que a empresa cresce, no entanto, poderá começar a considerar a aquisição de uma ferramenta de testes de desempenho premium.
Eis uma breve lista de algumas ferramentas de testes de desempenho premium:
Os testes de desempenho são geralmente semelhantes entre sistemas operativos. Muitas das ferramentas de testes de desempenho para Mac são executadas no Windows.
Considerações finais
Os testes de desempenho são um componente indispensável para garantir a fiabilidade e a eficiência do software, especialmente para empresas SaaS que estão a crescer rapidamente. Ao utilizarem ferramentas de topo, os responsáveis de QA obtêm informações valiosas sobre a escalabilidade, a resistência e a capacidade dos seus sistemas para suportarem tráfego elevado. Subscreva a nossa newsletter para obter mais informações de profissionais de garantia de qualidade!


