A 29ª Mesa Redonda do DFTestes foi sobre “Teste de Desempenho/Carga/Stress”. A discussão teve 4 respostas e 3 participantes, sendo eles: eu, Felipe Silva e a Vivian Lagares.
A seguir faço um resumo dessa mesa redonda, quem quiser ver a discussão na íntegra, é só acessar esse link.
Qual a diferença entre teste de desempenho, carga e stress?
Na minha opinião, tais testes têm como característica prover informações a respeito do sistema sob teste, diferente de outros que focam mais em buscar defeitos, mas cada um deles busca tipos de informações diferentes:
- Teste de desempenho: busca extrair informações sobre o desempenho do sistema em cenários normais de uso;
- Teste de carga: busca extrair informações sobre o volume de usuários, transações, etc o sistema suporta;
- Teste de stress: busca extrair informações sobre quando o sistema não suporta a carga aplicada, sendo muito importante para saber estruturar e dimensionar a arquitetura do sistema e prover informações para escalar o sistema.
O Felipe Silva respondeu a questão dizendo:
Eu descreveria da seguinte forma:
-> Teste de desempenho: Testa e mede o desempenho do sistema em uma situação normal de uso, bem como quanto requer de recursos de hardware, tempo de espera entre as ações e transações, com base no cenário que se espera ter normalmente em produção (posso dizer um teste de benchmark?);
-> Teste de carga: Testa e mede a alteração no desempenho do sistema sob um volume maior de carga, um horário de pico por exemplo (uma carga máxima esperada que possa acontecer algum dia em produção);
-> Teste de stress: Buscar descobrir qual é o ponto em que o sistema já não suportaria mais, para descobrir o limite do sistema, a carga máxima suportada, diferente do teste de carga porque a carga não para de aumentar enquanto o sistema não “quebra” (pode ser um valor muitas vezes acima do esperado em um pico de uso).
O Felipe ainda colocou na mesa algumas questões relevantes ao tema.
Qual a melhor ferramenta pra teste de desempenho? e pra teste de carga? e pra teste de stress?
Ao meu ver uma melhor ferramenta não existe. O que existe são ferramentas boas para determinados contextos.
Exemplo:
- JMeter para testar aplicações web;
- SIPp para testar aplicações SIP.
Há várias outras ferramentas para realizar tais tipos de testes, desde pagas até free. É importante que o profissional conheça tais ferramentas, para que possa fazer o uso da que melhor encaixe para a sua demanda.
Alguém usa uma ferramenta diferente pra um desses três tipos de testes e uma outra ferramenta para outro destes três tipos de testes? (exemplo, ferramenta A para teste de carga e ferramenta B para teste de stress)
O meu conhecimento prático foi mais com testes de desempenho,carga e stress para aplicações SIP, e na ocasião usávamos uma mesma ferramenta para a realizações dos três tipos de testes.
Qual a importância e atenção é dado pelos stakeholdes nos últimos 3 projetos em que você atuou? Estes testes eram feitos? Eram valorizados? Quanto?
Nas primeiras entregas não era muito comum haver uma preocupação com a performance, e sim mais como o funcionamento do sistema em si. Mas depois houve um grande foco na performance do sistema, tanto que havia entregas onde o foco principal nosso era avaliar a performance.
Mas isso varia muito de sistema para sistema, e também do estágio que está o desenvolvimento, mas na empresa a performance sempre acaba sendo uma característica que necessita ser avaliada, tanto para avaliar a infraestrutura necessária ou avaliar ferramentas para definir o escopo do projeto, quanto para ir melhorando a performance das aplicações já comercializadas.
Na opinião do Felipe Silva:
Nos três último, apenas no último (que inclusive é outra empresa) que dão importância e muita, tem uma equipe até de outra empresa focada só neste tipo de teste, em todos outros anteriores só era feito quando estava no “contrato” que tal teste ia ser feito e ainda era fazer por fazer.
Testador funcional obrigatóriamente deve saber fazer este tipo de testes? Para os gestores: O melhor que dividir os recursos ou fazer com que todos saibam tudo?
Obrigatoriamente não, principalmente se na empresa há essa distinção entre funcional e não-funcional.
O melhor, mais uma vez dependerá do contexto que o gestor tem. Às vezes pode até ser melhor para o gestor terceirizar tais testes.
O Felipe Silva respondeu a pergunta dizendo:
Creio que não, se a pessoa só tem este papel. Na minha opinião sempre que possível o melhor é dividir, testes é uma área muito ampla, é impossível ser senior em tudo, mas saber um pouco da outra área é sempre bem vindo, fato.
A Vivian Lagares também colocou boas perguntas sobre o tema.
Quais são os passos para realizar um teste de carga e de performance?
Avaliar as ferramentas disponíveis -> Levantar os cenários que serão testados -> Preparar o ambiente de teste -> Executar os testes -> Monitorar os testes -> Relatar os resultados obtidos
O que devo fazer para começar a realizar estes tipos de teste?
Levantar quais são as necessidades de performance do sistema que será testado, pesquisar ferramentas que poderão te ajudar e avaliar o grau de importância de tais testes para o seu projeto.
Bem pessoal é isso. Continuem de olho na lista do DFTestes, pois sempre há assuntos bem interessantes lá.
Fique por dentro das novidades, assine o feed do QualidadeBR.