19/06/2018 Beatriz Makiyama

Conheça o conceito de Testes de Performance para garantir a qualidade de aplicações

O mundo moderno exige respostas rápidas e confiáveis. Usuários de sistemas de informação são exemplos dessa exigência. Aplicações Web, por exemplo, devem proporcionar resultados imediatos para seus usuários de forma que contribua para a sustentabilidade do negócio e, claro, não sejam alvos de críticas no mercado. 

Há alguns anos, aqui na DB1, houve a necessidade de introduzir atividades de teste de performance em alguns de nossos produtos. Como eu ainda não dominava este segmento de testes, logo me prontifiquei para iniciar estudos sobre o assunto e, diga-se de passagem, fiquei impressionada com as possibilidades que estes testes nos trazem. 

A propósito, você sabe porque é tão importante testar a performance de uma aplicação? 

A importância dos Testes de Performance

Como mencionei no primeiro parágrafo, respostas rápidas, atualmente, representam um diferencial em um sistema. Caso o seu concorrente ofereça uma solução que seja alguns segundos mais rápida que a sua aplicação, a probabilidade de o cliente optar pelo concorrente pode ser significante (e preocupante).  

Mesmo que a sua aplicação disponibilize vantagens do ponto de vista funcional, como mais recursos ou uma aparência amigável, a sua competitividade não terá tanta relevância caso a performance seja comprometida. Afirmo isso porque sistemas lentos ou que travam com frequência geram aborrecimentos aos usuários. Nós mesmos nos incomodados quando uma aplicação web demora para responder, não é? 

Uma performance ruim não envolve apenas a insatisfação de usuários. Em alguns casos, falhas de desempenho trazem prejuízos para as empresas, principalmente em lojas virtuais. Um estudo feito pelo Aberdeen Group revela que cada segundo extra na leitura de uma página Web pode resultar em aproximadamente 7% em perdas de vendas. Outro estudo, feito pelo Forrester Research, indica que, para 40% dos compradores online, basta três segundos de demora ao carregar as páginas para que eles abandonem o site. 

Algumas empresas já identificaram a importância da performance e investiram em providências. A Amazon, por exemplo, confirmou o aumento de 1% no faturamento para cada 100 milissegundos de melhora na performance do site. Fatos como este nos levam à uma conclusão: neste contexto, cada segundo é importantíssimo. 

Quer saber mais sobre como a experiência do usuário pode impactar positivamente o faturamento de grandes empresas? Leia o artigo “Criando grandes cases para o ROI de User Experience (UX)“.

Em suma, aprimorar a performance de aplicações é fundamental para prevenir o abandono de usuários, garantir a alta disponibilidade e, não menos importante, evitar o fracasso de projetos devido a problemas de desempenho e escalabilidade. 

Os testes de performance são divididos em três estratégias para analisar a aplicação: 

  • Estratégia de Carga: testa a aplicação em condições normais de uso, ou seja, é iniciado com uma carga baixa de requisições e aumenta gradativamente; 
  • Estratégia de Desempenho (ou estabilidade): testa o funcionamento da aplicação após um período de uso. Uma carga constante é executada e mantida por um tempo estipulado; 
  • Estratégia de Stress: testa a aplicação sob condições extremas, simulando um grande volume de transações recebidas de usuários simultâneos. Cargas excessivas são executas em curtos períodos de tempo para avaliar a capacidade da aplicação em gerenciar as requisições. 

A estratégia de Stress geralmente é empregada em aplicações que recebem um grande número de acessos em determinados eventos como, por exemplo, resultados de vestibular, consulta de restituição do Imposto de Renda, transmissões em tempo real e a temporada do Black Friday. 

Ao executar os testes de performance, algumas variáveis devem receber uma atenção especial para avaliação dos resultados: 

  • Tempo de resposta: medida de performance que mais importa para o usuário final. Consiste no tempo entre a requisição de uma página e a sua exibição no navegador; 
  • Uso de recursos: infraestrutura da aplicação, como processadores, memória RAM e discos; 
  • Latência; 
  • Tempo de conexão; 
  • Quantidade de requisições; 
  • Porcentagem de erro: proporção das requisições com erro em relação à quantidade total de requisições.

Antes de encerrar o artigo, deixo também algumas dicas para o planejamento de um cenário de teste. Sempre responda à essas cinco questões para garantir uma verificação mais assertiva: 

  1. Qual tipo de serviço será testado? 
  2. Quantos usuários acessam ou acessarão a aplicação? 
  3. Quais são as funcionalidades principais e que envolvem o Core Business do sistema? 
  4. Qual é o tempo de resposta aceitável? 
  5. Como é a arquitetura e infraestrutura que hospeda a aplicação?

No próximo artigo apresentarei o JMeter, uma ferramenta para testes de performance que utilizamos na DB1, e o resultado que obtivemos ao utilizá-la. 

 

Até logo! 

Comentários

comentários

Sobre o autor

Beatriz Makiyama Graduada em Tec. em Análise e Desenvolvimento de Sistemas e pós-graduada em Gerenciamento de Projetos em TI pela FCV. Analista de testes há 8 anos. Trabalha na área de Tecnologia da Informação há mais de 11 anos. Trabalhou com programação, automação e testes de software em diversos projetos de diferentes áreas. Possui certificações CTFL e CTFL-AT. Apaixonada por Qualidade de Software.