Esse artigo faz parte da revista .NET Magazine edição 38. Clique aqui para ler todos os artigos desta edição

 

FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: PT-BR">Teste de Carga e Code Coverage

 

Um site de uma empresa irá entrar em produção hoje. O projeto foi conduzido de maneira exemplar, todas as necessidades do cliente foram mapeadas. A análise e design ocorreram dentro do prazo. Os desenvolvedores codificaram o aplicativo, fizeram os testes unitários. A equipe de qualidade executou novamente os testes unitários, e fizeram o teste de caixa preta. São 08h00min da manhã, a expectativa é imensa, a área de marketing fez os anúncios nos mais diversos canais da mídia. O site é liberado, aparentemente o site é um sucesso. Às 08h20min o site cai. A equipe de TI entra em frenesi, o que será que ocorreu? O servidor é reiniciado, o site cai novamente.

Parece ficção, mas pode ser uma realidade. Um problema como este ocorre quando não nos atentamos aos requisitos não funcionais, dentre eles, quantidade de usuários previstos e quantidade de usuários concorrentes. Para mitigar estes riscos, é necessário fazer uma estimativa durante a fase de levantamento. Conhecendo-se estes indicadores, como simular?

Quando testamos um aplicativo na máquina de desenvolvimento, o acesso é realizado somente por um usuário, o que impede analisarmos o comportamento em um cenário real. Para fazer isto, utilizamos o Teste de Carga (Load Test), que discutiremos neste artigo, neste tipo de teste conseguiremos simular ambientes próximos aos reais. Cobriremos neste artigo também o code coverage, ou cobertura de código, que é uma análise nas rotinas do programa, onde poderemos ter conhecimento das linhas de código que foram executadas durante o teste.

 

Teste de Carga

Basicamente um teste de carga é a simulação do uso de um aplicativo por diversos usuários, concorrente ou não. Nele podemos analisar os recursos computacionais utilizados durante o processo de simulação, tais como, consumo de memória, largura de banda utilizada, quantidade de requisições por segundo, etc. Estes indicadores dão subsídios às equipes de desenvolvimento e infra-estrutura, para que “gargalos” sejam identificados. Podemos ter gargalos decorrentes de má implementação, erros de modelagem do sistema e arquitetura inadequada à necessidade de negócio.

Em relação à infra-estrutura, identificam-se problemas de recursos de hardware insuficientes para que a aplicação possa funcionar com eficiência e eficácia e, por diversas vezes, aumento de memória, troca de servidores e aumento da velocidade do link de comunicação, são ações que podem ser necessárias. O Visual Studio Team System For Software Testers oferece recursos necessários para a execução e gerenciamento deste tipo de teste.

Para executar um teste de carga, é necessário que algum tipo de teste, como testes unitários ou testes web tenham sido gravados previamente. Neste artigo, vamos rodar um teste de carga sobre a nossa aplicação web, que já utilizamos nos dois primeiros artigos da série. Para o teste, utilizaremos o teste web criado no segundo artigo da série. Nas linhas a seguir aprenderemos a configurar executar um teste de carga e analisar os resultados.

 

Criando um teste de carga

1 - Abra a solução Calculadora, criada no primeiro artigo da série;

2 - Clique com o botão direito sobre o projeto TesteCalculadora,  e selecione a opção Add/Load Test..., como demonstrado na Figura 1;

 

...

Quer ler esse conteúdo completo? Tenha acesso completo