Performance Computacional
Teste de Performance
1- Conceito e introdução.
O Teste de Performance consiste em avaliar a capacidade de resposta, robustez, disponibilidade, confiabilidade e escalabilidade de uma aplicação, conforme a quantidade de conexões simultâneas, avaliando seu desempenho em alta carga de trabalho e considerando seu comportamento em circunstâncias normais.
Em particular, o objetivo de tais experiências pode ser o de garantir que o software não apresente problemas ou indisponibilidade em condições de insuficiência dos recursos computacionais (como memória, processamento ou espaço em disco), quando trabalhando em alta concorrência ou sofrendo algum ataque de negação de serviço.
Tipo de teste previsto na qualidade de software e teste de software.
2- Descrição do Serviço.
Para todo serviço de teste de performance realizado pela Testar.me, são disponibilizados ao cliente dois documentos de acordo com cada projeto. O Plano de Teste e o Plano de Coleta.
O Plano de Teste, consiste em apresentar ao cliente toda a descrição e etapas do teste. Como seu propósito, o escopo, cronograma, a grade de teste, bem como os cenários (passo a passo) a serem testados (Cenários de Teste).
Outro ponto importante do Plano de Teste, é descrever como será a distribuição dos acessos. Ou Seja, para cada quantidade de acessos simultâneos, quantos vão simular a funcionalidade A, a funcionalidade B e assim por diante.
Já o Plano de Coleta, consiste em documentar os procedimentos para gerar coletas de performance durante a execução das atividades.
Ou seja, quais monitores serão ativados, em quais momentos serão gerados dumps da aplicação em teste, como será realizado um profiler de aplicação ou então realizar coletas em banco de dados.
Toda a coleta é descrita passo a passo e documentada para que na execução do teste, seja possível extrair as informações necessária de performance do ambiente e software testado
3- Tipos de Teste
O Teste de Carga:
Um dos tipos de Teste de Performance, é o teste de carga. É geralmente realizado para identificar o comportamento do sistema sob uma carga especifica esperada. O que pode ser uma quantidade esperada de usuários simultâneos, uma quantidade de operações por hora ou um determinado numero de transações no sistema em teste.
Este tipo de teste é ideal para verificar se a aplicação, servidor web ou banco de dados em teste, mantém um bom comportamento durante sua carga habitual de trabalho.
O Teste de estresse (Stress Testing):
Este tipo de Teste é realizado para verificar o comportamento do ambiente e software durante uma carga extrema. Também para determinar se o sistema em teste irá realizar suficientes operações acima do máximo esperado.
Teste de longa duração ou Teste de Resistência:
O teste de longa duração (Soak testing) ou teste de resistência, consiste em determinar se o sistema em teste pode suportar uma carga contínua durante longos períodos de tempo. Determina se o software em teste irá se comportar adequadamente na utilização de memória durante um longo período de utilização, por exemplo. Outro ponto importante deste tipo de teste é verificar se não ocorre degradação na performance após 4 ou 8 horas de utilização continua. Visando garantir que atenda os períodos normais de produção em que o sistema será utilizado.
Teste de Subida Rápida:
Este tipo de teste é realizado simulado uma subida rápida e grande de usuários simultâneos em curto período de tempo. O objetivo é determinar se o sistema em teste irá falhar ou bem sucedido ao lidar com uma mudança brusca na carga de usuários.
Teste de Configuração:
Em vez de testar a performance numa visão de carga, os testes de configuração são criados para determinar o comportamento nas alterações de configuração de um componente do ambiente. Por exemplo, como será o desempenho ao modificar um balanceamento de carga, removendo ou adicionado novos servidores, utilizando um link de contingência ou qualquer outra modificação que ocorra no ambiente em teste.
4- Configurações utilizadas durante o Teste
Outras configurações importantes também são definidas durante o teste de performance da Testar.me.
O mix de navegadores Web
A Testar.me define no plano de teste os navegadores a serem simulados no ambiente em teste. Seja ele o Internet Explorer, Firefox, Chrome ou Safari. Desta forma é possível medir o comportamento da aplicação em teste nos diferentes tipos de navegadores existentes.
Simulação de banda de internet:
Importante também identificar o tipo de rede utilizado pelos clientes. No teste também podemos definir a largura de banda a ser testada. Por exemplo, se sua aplicação é predominantemente acessada por internet móvel, é importante definir nos testes uma porcentagem de usuários simultâneos utilizando esta tecnologia.
Tão importante quanto os outros itens anteriores, é definir a quantidade necessária de agentes de teste ou quantidade de endereços IPs distintos para realizar o teste de performance. Aplicações em load balance ou com limitações de conexão originadas de um mesmo endereço IP, devem ser acessadas através de diferentes hosts de internet.
Os testes realizado pela Testar.me replicam de forma mais fiel possível esta situação e são originados de diferentes endereços IPs e servidores que possuímos.
5- Durante a execução
Além das coletas mencionadas nos itens anteriores, durante a execução de teste de performance, devem ser coletados e analisados itens, como:
- O Tempo médio de resposta.
- Tempo máximo e mínimo de resposta.
- Quantidade de operações vs unidade de tempo.
- Testes por segundo.
- Testes que resultaram em falha.
- Tempo médio do teste.
- Transações por segundo.
- Requisições por segundo.
- Tamanho das requisições HTTP, componentes, imagens.
- Componentes cacheados pelo navegador web, entre outros
6- Entrega e relatório
A entrega do relatório dos resultados dos testes é personalizado de acordo com o tipo de sistema e teste.
Além dos itens descritos no item 5, deve informar as medidas a serem tomadas para melhoria do desempenho. (Ou sugestões de melhoria).
Como também o numero máximo de conexões ou usuários simultâneos suportados e qual foi o ponto de exaustão encontrado durante o teste.
7- ReTeste
O teste deverá ser repetido até que a aplicação apresente o desempenho necessário. Não se trata de retrabalho, mas de procedimento comum e regular, pois em geral o primeiro ciclo de testes é que possibilita a identificação de melhorias a serem realizadas pelos desenvolvedores da aplicação. Após esta otimização, a aplicação deve ser submetida a um novo ciclo de testes, a fim de validar a melhora em seu desempenho.
Leituras Adicionais e mais informações sobre Teste.
Informações sobre teste de software? Entre em Contato
Estamos aqui para lhe atender. Contate-nos por telefone, e-mail ou Rede Social.