Вы находитесь на странице: 1из 38

Teste de desempenho: Conceitos,

Objetivos e Aplicao - Parte 1


Avaliao do desempenho: Uma parte
crucial de um processo de Qualidade e
teste de Software em uma aplicao Web.
por
Fbio Martinho Campos

36 7 2 13

Teste de Performance uma parte crucial de um processo de Qualidade e teste de


Software em uma aplicao Web.
Na maioria dos modelos de processo de Engenharia de Software, o teste de software
tem um papel importante na garantia da qualidade de um produto de software. Na
maioria dos projetos, a maior parte do esforo vai para testes funcionais e alguns
gerentes tendem a ignorar Testes de Performance completamente.
Para sites e aplicaes Web, especialmente em uma situao de comrcio
eletrnico, Testes de Performance so fundamentais. Mesmo uma aplicao bugfree estar fadada ao fracasso, apenas por aguentar um trfego mdio, mas no
capaz de lidar com um pico significativo na vida real de uma situao. Para garantir que
uma aplicao Web satisfaz certos critrios como performance, throughput de dados ou
tempo de resposta, testes em um ambiente semelhante ao de produo ser necessrio.
O Teste de Performance em sua mais pura definio o tipo de teste realizado para se
verificar o tempo de resposta de uma aplicao, determinando assim a sua
escalabilidade e confiana levando-se em considerao uma carga(load).
O Teste de Performance usado tambm para se identificar os famosos
gargalos(bottlenecks) de um sistema, determinar compliance com os requisitos nofuncionais de performance e coletar outras informaes como hardware necessrio para
a operao da aplicao.
So estes alguns dos propsitos do Teste de Performance:

- Determinar a probabilidade que o sistema ir atender aos SLAs(Service Level


Agreement) acordados;
- No mitiga o risco diretamente, mas identifica e quantifica o risco;
- Determina a configurao mnima que permitir o sistema atender os SLAs;
- Determinar tempos de resposta em throughputs;
- Determinar gargalos(bottlenecks) no sistema;
- Comparao de diferentes plataformas de hardware e O.S.
Benefcios do Teste de Performance:

- Melhoria da qualidade do ponto de vista do usurio;


- Reduo do custo de mudanas;
- Reduo dos custos de sistema;
- Aumento dos lucros;
- Identificao antecipada dos defeitos mais crticos da aplicao como arquitetura do
sistema;
- Satisfao do usurio final;
- Clareza na utilizao dos recursos;
- Teste de Performance tambm remove muitos mitos associados aos usurios.

Restries do Teste de Performance:

- Muito complexo;
- As atividade de design, execuo, anlise e relatrios consome muito tempo;
- Deve comear assim que os requisitos/SLAs forem estabelecidos e acordados;
- Requer a simulao de centenas/milhares de usurios simultneos. Isso requer
ferramentas de automao, as quais na maioria das vezes so caras;
- Um ambiente propcio como banda, configurao do sistema, usurios simultneos
fundamental para que os resultados sejam os mais realsticos possveis;
- Ambiente real de produo no pode ser simulado, uma vez que para isso seria
necessrio muitos investimentos.
O Teste de Performance visto de maneiras diferentes com base nos objetivos
estabelecidos para os indicadores de performance. Se o requisito est concentrado nas
caractersticas especficas do sistema tais como tempo de resposta, throughput,
capacidade, utilizao dos recursos, ento a percepo do Teste de
Performance tambm difere.
Teste de Performance possui trs percepes gerais:
1. Teste de Tempo de Resposta(Response Time Testing): Representa a percepo do
usurio de quo rpido o sistema reage para uma Request ou Query. A reao pode
ser lenta ou rpida com base no tipo de atividade e o tempo necessrio para processar a
requisio. A aceitao de um determinado tempo de resposta um fator relacionado
psicologia humana. As expectativas variam de usurio para usurio! Um usurio que
trabalhada com 5 segundos de tempo de reposta, iria ficar frustrado com 10 segundos
tempo de resposta, por exemplo. Ento, o tempo de resposta de uma aplicao para
outra difere, assim como de um usurio para outro. Mas a indstria apresenta as
seguintes normas:
Para um sistema multimdia interativo, o tempo de resposta deveria ser 0.1 segundo ou
menos, 90% do tempo;
Para sistemas online onde tarefas so inter-relacionadas, o tempo de resposta deveria
ser menos que 0.5 segundos, 90% do tempo;
Para sistemas online onde usurios fazem mltiplas tarefas simultaneamente, o tempo
de resposta deveria ser 1 segundo ou menos, 90% do tempo.
A consistncia do tempo de resposta medida em vrios ciclos de teste, se a
performance calculada especificamente em termos de tempo de resposta.

Teste de Throughput(Throughput Testing): Teste de Throughput mede o throughput de um


servidor em um sistema baseado em Web. Ele uma medida do nmero de bytes enviados
por unidade de tempo. Throughput de vrios servidores em a arquitetura de sistema pode ser
medido em kilobits por segundo, consultas em banco de dados por minuto, transaes por
hora, ou qualquer outra caracterstica vinculada ao tempo.
Teste de Capacidade(Capacity Testing): Mede a capacidade global do sistema e determina
at que ponto o resposta tempo e throughput torna-se inaceitvel. Teste de Capacidade
realizado com carga normal para determinar a capacidade extrema, onde o Stress
determinado por sobrecarregar o sistema at que ele falhe, o que tambm chamado de carga
de estresse, para determinar a capacidade mxima de um sistema.

Abaixo, segue uns exemplos de grficos gerados por uma ferramenta de automao:

medida que a carga cresce constantemente para se analisar o comportamento do


sistema, deve-se observar os gargalos(bottlenecks). Estes gargalos podem estar
localizados nos seguintes lugares:
- Aplicao: Desenvolvedores podem usar ferramentas a fim de descobrir ineficincias
em seus cdigos(algoritmos de busca e localizao);

- Bando de Dados: Desenvolvedores e DBAs podem usar ferramentas de otimizao


para buscas(queries);
- Sistema Operacional: Desenvolvedores e analistas de sistemas podem usar
ferramentas para monitorar o constante uso do hardware como memrias e HDs;
- Rede de Dados: Engenheiros de rede podem fazer o uso de sniffers e analisadores de
protocolos de rede a fim de monitorar o trfego na rede de dados.
Teste de Performance simula as atividades do usurio e analisa o efeito do ambiente
no mundo real da aplicao
Gargalos(Bottlenecks) em uma aplicao Web : So desenvolvidas em um ambiente
multi-operacional. Mdulos do servidor podem ser executados em Unix enquanto
mdulos do cliente podem rodar no Windows. A concepo global de arquitetura inclui
servidor Web, servidor de aplicaes, ambiente de rede, firewalls, etc.
Um exemplo desta realidade pode ser visto na figura abaixo:

Alguns gargalos clssicos podem incluir:

- Alto consumo de recursos como CPU, memria, banda;


- Design do banco de dados durante o desenvolvimento da aplicao;
- Padres de design de tabelas no so seguidos;
- Baixa indexao de banco de dados;
- Baixa qualidade nas lgicas de queries;
- Stored Procedures inapropriadas.
Os gargalos impactam diretamente a aplicao, que por conseqncia impactar o
cliente final com baixa performance. Considerando-se um site de E-Commerce, as
seguintes reaes dos usurios podem ser:
- Interrupo temporria do acesso ao site e uma nova tentativa aps algum tempo;
- Abandono do site por alguns dias;
- Abandono do site para sempre;
- Clientes desencorajam outras pessoas para acessar o site.
Com isso, os stakeholders do projeto tm expectativas como:
- Disponibilidade 24X7;
- Resposta rpida quando uma query for realizada;
- Uso adequado da memria em ambos cliente e servidor;
- Mximo de transaes por segundo;

- Quais outras expectativas voc adicionaria como cliente final?

Por que executar os Testes de Performance?


- Avaliar a release que ser disponibilizada para a produo;
- Avaliar uma infra-estrutura adequada:
Avaliar a capacidade atual;
Determinar a estabilidade;
Determinar a capacidade da infra-estrutura da aplicao, bem como determinar futuros
recursos necessrios a fim de atender aceitveis nveis de performance;
Comparao entre diferentes configuraes de sistemas para determinar qual infraestrutura ir melhor atender ambos o negcio e a aplicao;

- Melhoria da eficincia do performance tuning;


- Avaliar a release que ser disponibilizada para a produo;
- Determinar se a aplicao pode suportar sua carga de trabalho pretendida;
- Simulao de centenas ou at mesmo milhares de usurios virtuais, representando suas
operaes rotineiras do sistema em questo;
- Avaliar o tempo de resposta da aplicao, sabendo assim quanto tempo o usurio fica
esperando por uma resposta do sistema;
- Garantir ao longo do tempo que a sua aplicao possui estabilidade o suficiente para
aguentar o crescimento da carga de trabalho(workload).
O Papel dos requisitos no Teste de Performance muito importante, uma vez que as
expectativas geradas esto documentadas e acordadas. Ou seja, devem ser cumpridas!
- O Teste de Performance se enquadra no tipo de teste no-funcional; (requisito muito
genrico e sem objetivo, mas existe!)
- Um requisito de performance um requisito que impe condies para um requisito
funcional, ou seja, requisitos que especificam a velocidade, acurcia ou uso de memria
dentro de uma funcionalidade que dever ser realizada.
- O processo de autenticao dever ser completado rapidamente;
- Depois que o usurio digita o nome de usurio e senha, e clicar no boto Enviar na
pgina de Login, o tempo de resposta da autenticao no poder exceder trs
segundos;
Alguns exemplos de requisitos no-funcionais para performance podem ser:
- Em mdia, este cenrio acontece 20 vezes por minuto. Depois que o usurio abre a
pgina de Login, o usurio digita o nome de usurio e senha vlidos, e clicar no boto
Enviar, o tempo de resposta deve ser inferior a 3 segundos 80% do tempo;
- O sistema est sendo executado no mbito da carga de trabalho mais pesada possvel.
A mdia de tempo de resposta para exibir a mensagem promocional sobre determinado
produto aps um cliente entra em uma pgina onde esto localizados os itens
promocionais devem ser inferiores a 1 segundo;
- Atualmente, voc capaz de definir os requisitos de performance do seu projeto?
Em quase todos os casos, Teste de Performance descobre erros fatais que
provavelmente levariam a sua Aplicao/Sistema a ter tempos de resposta muito altos
ou o Crash por completo da Aplicao/Sistema
Algumas questes devem ser respondidas ao realizar o Teste de Performance, como:
- O problema est relacionado ao tempo de resposta?
- O problema indisponibilidade?
- um problema de freqentes Time-outs?
- O problema de lentido est ocorrendo em todo o site ou para alguma transao
especifica?
- O problema est afetando todos os usurios ou apenas um certo grupo de usurios?
- Um grupo de usurios freqentemente relata o mesmo problema?
Se sim, analise:
- Verifique a velocidade do link;
- O local de uso;
- Tipo de conexo;
- Verifique a interatividade do usurio com o sistema.
Teste de Performance no s previne como ajuda ainda a responder mais questes,
como:
- Ser que o sistema capaz de lidar com constantes aumentos de trfego da Web, sem
comprometer o tempo de resposta, segurana, confiabilidade e preciso?

- At que ponto a performance ser degradada e qual componente ser responsvel pela
degradao?
- Qual o impacto a degradao da performance ter na empresa em termos de vendas e
custos de suporte tcnico
- O que poderia ser o problema? Servidor, rede, banco de dados, ou a aplicao em s?
- necessrio controlar todos os componentes de hardware como roteador, firewall,
servidores, links de rede ou apenas a monitorao padro suficiente?
Benchmarking: o processo de comparao da performance do seu sistema com uma
baseline que voc tenha criado internamente ou uma comparao com um padro de
indstria realizado por outra organizao.
- No caso de um sistema Web, pode-se executar testes que esto em conformidade com
as especificaes de uma indstria de referncia a fim de capturar mtricas de
desempenho, necessrias para o benchmark da sua aplicao. Ento considerada uma
carga de trabalho(workload) fictcia a fim de simular o sistema no ambiente real de
produo.

Cargas de Trabalho(Workloads): O objetivo das Cargas de Trabalho derivar um


modelo capaz de mostrar, capturar e reproduzir um comportamento da carga de trabalho
e suas funcionalidades mais importantes.
Existem basicamente quatro formas de workload:

- Goal Oriented(Orientado a Meta/Objetivo): Um sistema quando desenvolvido metas


definidas! Requisitos de performance so direcionados por estas metas. As metas so
usadas para fazer o projeto de carga de trabalho do Teste de Performance;
- Transaction Based(Baseado em Transao): O objetivo analisar o desempenho do
sistema para todas as transaes de negcios que so relevantes ao dia-a-dia da empresa.
Todas as transaes identificadas devem ser usadas enquanto se projeta a carga de
trabalho. O desempenho das metas para estas operaes deve ser o de verificar a
eficincia dos recursos para uma resposta aceitvel e caudal.
- Architecture Based(Baseado na Arquitetura): A arquitetura de sistema precisa de ser
cuidadosamente ponderada na concepo do trabalho. As tendncias de negcio e

tecnologia que ir afetar a arquitetura precisam ser consideradas. A carga de trabalho


deve ser projetada tendo em mente que estes fatores so parte do cenrio do mundo real;
- Growth Based(Baseado no Crescimento): medida que o negcio cresce, o sistema
exige mudanas na sua funcionalidade, desempenho e confiabilidade. Se o sistema no
desenvolvido tendo em vista manter o crescimento, modificaes tornam-se mais caras
e demoradas. Tendo ento o conhecimento das perspectivas de crescimento, uma carga
de trabalho detalhada ser projetada para verificar a performance do sistema.
Quais sistemas esto vulnerveis performance:
- Aplicaes Client-Server: Arquiteturas Client-Server representam um grande desafio,
uma vez que problemas de performance, associados com transao/processamento,
presena de vrios hardwares diferentes, complexidade na rede de dados, etc. fazem
com que toda essa combinao torne o teste ainda mais difcil, sendo ainda mais
complicado achar a causa raiz do problema em questo;
- Aplicaes Web: Aplicaes Web-based, tm evoludo a partir de aplicaes ClientServer. Os conceitos de Client-Server so mantidos atravs de um Web-Client e um
Web-Server. Estas so aplicaes de software que interagem com os usurios ou outros
sistemas usando Hyper Text Transfer Protocol(HTTP). O uso de aplicativos na Web
pode variar de simples at tarefas mais complexas. Com a exploso do comrcio
eletrnico, as empresas esto simplificando os processos e acelerando as operaes
atravs da Web como um meio mais eficaz.
Fatores que impactam na performance:
- Peculiaridades do Projeto:
Natureza do Projeto;
Metodologias;
- Peculiaridades Tcnicas:
Ameaas Segurana(SQLs injection);
Negligncia por parte dos desenvolvedores;
Complexidade na interface com o usurio(usabilidade);
- Contedo dos Sites:

HTML;
Imagens;

Multimdia;
Aplicaes executveis;
- Ambiente do Cliente;
Diferentes Browsers;
Diferentes Plataformas;
Etc.
- Ambiente do Servidor:
Transferncia de arquivos entre servidores;
Localizao do servidor;
Servidor Web conectado a uma LAN;

- Ambiente do Servidor:
Servidor Web localizado em uma LAN dentro de um firewall.

- Ambiente do Servidor:
Servidor Web localizado em uma LAN fora de um firewall.

- Ambiente de Rede de Dados:


Internet Service Providers(ISP):
o Topologia;
o Links externos
o Roteadores e equipamentos redundantes;
o Link de conexo e velocidade;
o Centro de operaes da rede.
Dialup;
Cable Moden;
ISDN(Integrated Services Digital Network);
Leased Lines( T1, T3);
Web Caching:
Client Caching;
Proxy Caching;
Server Caching.

- Servidores Web(Web Server) e Servidores de Aplicao(Application Server ):


Microsoft Internet Information Server (IIS);

- Servidores Web(Web Server) e Servidores de Aplicao(Application Server ):


Apache Web Server;
Web Logic Application Server (BEA);
WebSphere Application Server;
Oracle9i Application Server;
Sun ONE Application Server;
Orion Application Server.
- Scripting Languages for Web-Based Applications:
Hyper Text Markup Language (HTML);
Extensible Markup Language (XML);
Extensible Hypertext Markup Language (XHTML).
- Scripting Languages for Web-Based Applications and Client Side Scripting:
Cascading Style Sheets (CSS);
Python;
Virtual Reality Modeling Language (VRML);
Common Gateway Interface (CGI);
Hypertext Preprocessor (PHP);
Microsoft .NET;
Active Server Pages (ASP);
Java Server Pages (JSP);
Visual Basic (VB) Script;
JavaScript;
Jscript;
Server Side Includes (SSI).
Performance Tuning(Otimizao da Performance): Quando o Teste de Performance
realizado de forma completa revela caractersticas do sistema/aplicao inaceitveis,
fazendo com que os analistas de teste mudem o foco do Teste de Performance para o
performance tuning, descobrindo assim o que necessrio para tornar a
sistema/aplicao aceitvel.

Performance tuning tambm realizado quando os objetivos/metas foram atingidos,


mas o time do projeto deseja reduzir a quantidade de recursos que so utilizados para
ento diminuir o tempo de resposta e o volume de hardware necessrio ajudando na
performance do sistema/aplicao como um todo.
Performance tuning no est relacionado diretamente como uma atividade dos analistas
de teste, mas sim uma cooperao/esforo de todos que esto/so responsveis pela
aplicao/sistema que est sendo testado e pode incluir arquitetos, desenvolvedores,
administradores de banco de dados, sistemas e rede de dados.
O processo de performance tuning geralmente separado, mas no independente do
Teste de Performance.
O seguinte processo para performance tuning :

As reas mais comuns onde se poder encontrar gargalos e realizar o performance


tuning so:

Alguns riscos relacionados ao Teste de Performance:

Alguns tipos de teste de software, relacionados ao Teste de Performance podem ser:


- Carga(Load): Identifica os nveis mximos, os quais um sistema/aplicao pode
realizar com sucesso em termos de carga de trabalho(workload) e nmero de usurios
virtuais(Virtual Users);
- Stress: Testes so projetados para causar a falha no sistema e determinar o breaking
point do sistema;
- Volume: Testes so projetados para identificar o mximo de throughput, ou seja,
total de transaes por minuto de um sistema;

- Escalabilidade: Testes so projetados para medir a performance do sistema enquanto


uma constante carga adicionada(Usurios Virtuais);
- Tolerncia(Endurance): Testes so projetados para avaliar a performance do
sistema sob condies normais de carga atravs de um longo perodo de tempo;
Testes de Performance X Testes Funcionais
Teste de Performance
Teste Funcional
No testa o front-end da aplicao, ou seja, as funcionalidades.
Teste o front-end da aplica
Teste a escalabilidade da aplicao e monitora o uso dos recursos de
No teste a escalabilidade da
hardware.
hardware.
Projetado para determinar como uma aplicao / sistema ir realizar ao longo No pode determinar como u
do tempo.
do tempo.
Requer uma aplicao totalmente funcional para que os cenrios sejam
No requer uma aplicao tot
executados adequadamente.
sejam executados adequadam
Vrios usurios.
Um usurio.
Alguns mitos do Teste de Performance:
Problemas de performance do Client-Server pode ser facilmente consertado apenas por
se colocar um processador mais poderoso;
Se as funcionalidades esto funcionando corretamente, usurios no se importam com
o tempo de resposta;
Planejamento no necessrio para o Teste de Performance! intuitivamente bvio
como se medir a performance do sistema;
necessrio apenas algumas horas antes da release ser disponibilizada para produo
a validao da performance;
Qualquer um pode medir e analisar a performance; No necessrio nenhum skills
para a atividade de Teste de Performance;
Teste de Performance no requer ferramentas caras.
Teste de Performance em apenas uma frase:
Teste de Performance normalmente executado para ajudar a identificar gargalos
sistema, estabelecer uma baseline para futuras anlises/testes, apoio no esforo de
performance tuning, determinar a conformidade com requisitos e metas de
performance, e/ou coleta de outros dados relacionados ao desempenho para assim
ajudar os stakeholders a tomar decises relacionados com a qualidade total da
aplicao que est sendo testada. Alm disso, os resultados do Teste de Performance e
anlises podem ajudar voc a estimar a configurao do hardware necessria para
suportar a aplicao quando voc liberar para o uso em produo
Read more: http://www.linhadecodigo.com.br/artigo/3256/teste-de-desempenho-conceitos-objetivos-e-aplicacaoparte-1.aspx#ixzz3M1cadzBc

Testes de Performance - Ciclo de Vida de


Performance e Atividades Relacionadas Parte 2

Assim como h o Ciclo de Vida de


Desenvolvimento de Software(SDLC),
existe tambm um termo novo chamado
de Ciclo de Vida de Teste de
Performance, o qual relevante para
sistemas baseados na Web. PTLC parte
fundamental e indispensvel do SDLC.
por
Fbio Martinho Campos

1001

Ciclo de Vida de Teste de Performance(PTLC Performance Testing Life Cycle):


Assim como h o Ciclo de Vida de Desenvolvimento de Software(SDLC), existe
tambm um termo novo chamado de Ciclo de Vida de Teste de Performance, o qual
relevante para sistemas baseados na Web. PTLC parte fundamental e indispensvel
do SDLC.
Uma vez que problemas relacionados com performance devem ser realizados em cada
nvel do SDLC, existe a necessidade de se avaliar cada fase novamente, saber a causa
raiz de cada problema encontrado e ainda registrar os defeitos.
Cada fase do SDLC tem um componente de PTLC!
O Teste de Performance dentro do Ciclo de Vida Tradicional de Desenvolvimento de
Software(Waterfall):

O Teste de Performance dentro do Ciclo de Vida de Teste de Software:

Outros exemplos ainda para um ciclo de vida para testes de performance pode ser o
abaixo:

Muitos outros ciclos de vida poderiam ser citados. Adicionalmente, estes modelos
servem de base para as empresas adotarem totalmente ou apenas partes deles, sendo que
ainda adaptaes podem ser feitas para serem ajustadas realidade da empresa.

Para fins de detalhamento e explicao das atividades dentro de cada fase de um modelo
de ciclo de vida para testes de performance, vamos usar o exemplo genrico abaixo:

Identificao do Ambiente de Teste

O ambiente onde ser executado os testes de performance bem como as ferramentas e


hardware necessrio consiste o Ambiente de Teste de Performance. Se a objetivo
determinar a performance do sistema em produo, o ambiente de teste deve/deveria ser
uma rplica desse mesmo ambiente, mas com a idia de gerao de cargas de trabalho e
monitoramento de recursos.
Rplicas de ambientes de produo no so utilizadas na maioria das vezes!!!
A similaridade entre os componentes de hardware, software e configurao da rede tm
grandes impactos nos resultados de performance, sendo que deve-se ainda levar em
considerao quais testes sero executados e a carga de trabalho que ser gerada.
importante lembrar que ambientes com hardware e software no so somente
responsveis pelo impacto na performance, mas tambm os objetivos e metas do teste
que ser executado
muito importante entender as similaridades e diferenas entre o ambiente de teste e o
Ambiente de produo. Alguns fatores devem ser considerados, como:
- Hardware:
Configuraes;
Hardware(Processador, memria, etc.);
- Rede de Dados:
Arquitetura da rede localizao do usurio final;
Implicaes de load-balancing(Balanceamento de carga);
Cluster e configuraes de DNS;

- Ferramentas:
Limitaes das ferramentas de gerao de carga;
Impacto no uso de ferramentas de monitorao;
- Software:
Outros softwares que estejam rodando ou instalados no mesmo ambiente ou em
ambientes virtuais;
Capacidade de armazenamento e volume de dados;
- Fatores Externos
Volume e tipo de trfego na rede de dados;
Processos batch agendados; atualizaes e/ou backups;
Interaes com outros sistemas
Consideraes:
- muito importante que os analistas de teste tenham acesso a servidores e software, ou
fcil acesso aos administradores que fazem servios de instalao, configurao, etc.;
- Identificar a quantidade e o tipo de dado que a aplicao ir usar para simular
condies reais;
- Analise os fiirewalls, DNSs, etc. a fim de produzir o ambiente real de produo;
- recomendvel solicitar ajuda aos administradores de sistemas para que eles possam
configurar ferramentas de monitorao, diagnsticos e outras utilidades do ambiente de
teste.
Identificao dos Critrios de Aceite de Performance

Identificao dos Critrios de Aceite de Performance: Geralmente faz sentido comear a


identificao ou pelo menos estimar as caractersticas de performance desejadas o mais
cedo possvel no SDLC. Isso pode ser conseguido atravs de sesses de levantamento
de requisitos e acordos j estabelecidos que os usurios e stakeholders esperem de uma
boa performance.
Trs caractersticas so freqentemente essenciais para a satisfao dos usurios e
stakeholders, como:
- Tempo de Resposta;
- Throughput;
- Utilizao de Recursos.
Consideraes:
- Requisitos de negcio;
- Expectativas dos usurios;
- Obrigaes contratuais;
- Padres de indstria e conformidade com agencias reguladoras;
- SLAs;
- Metas de utilizao de recursos;
- Vrios e realsticos modelos de carga de trabalho;
- KPI(Key Performance Indicators);
- Objetivos de otimizao;
- Cronograma, treinamento, contrataes, oramentos, recursos humanos e no
humanos, etc.
Planejamento do Design de Teste

O planejamento de design dos testes de performance envolvem a identificao dos


cenrios mais usados/comuns dos usurios, determinao da variao entre os usurios,
identificao e gerao de dados de teste(massa de dados) e especificao das mtricas
que devem ser/sero coletadas. Estas informaes sero a base para a criao de perfis
de cargas de trabalho.
Quando o planejamento de design feito para se simular o ambiente de produo, os
objetivos/metam devem ser a criao de cenrios do mundo real para assim prover
informaes confiveis para possibilitar a organizao a tomar decises nas informaes
levantadas.
O design de cenrios do mundo real aumentar significativamente a relevncia e
utilidade dos resultados do teste!!!
A fase de design pode levar muito tempo, uma vez que scripts precisam ser gerados.
Para o design, levam-se em considerao os cenrios chave, como:
- Cenrios obrigatrios, especificados via contrato;
- Cenrios mandatrios para se atingir os objetivos/metas de performance;
- Cenrios mais comuns;
- Cenrios de fator crtico para o negcio da organizao;
- Cenrios com uso intenso do usurio final;
- Cenrios que possam envolver preocupaes tcnicas e dos stakeholders;
- Cenrios com alta visibilidade.

Quando identificadas, coletadas e reportadas corretamente, mtricas provem


informaes da performance do seu sistema comparando-se com as caractersticas de
performance desejadas.
Para fazermos um planejamento estruturado, organizado e dedicado para testes de
performance precisamos de uma Plano. Um exemplo de template para Plano de
Performance fornecido neste artigo.
Consideraes:
- Cenrios realsticos so baseados no quem se espera encontrar no mundo real e no
teorias e projees;
- Cenrios realsticos produzem mais credibilidade nos resultados e melhora o valor do
Teste de Performance;
- Teste de performance no nvel de componentes tambm deve ser encarado com
cenrios realsticos;
- Se os resultados dos testes foram extrapolados/no realsticos, pode-se criar cenrios
de inconsistncias a medida que o escopo do projeto tende a crescer, levando a decises
freqentemente erradas;
- Envolvimento dos desenvolvedores e administradores de sistema como forma de
determinar as mtricas onde provavelmente eles tem forte impacto na performance
como um todo;
Configuraao do Ambiente de Teste

A preparao do ambiente de teste, ferramentas e recursos para a implementao do


design do teste e execuo deve iniciar o quanto antes, uma vez que suporte poder ser
necessrio para vrias atividades como configuraes, listas de IPs, etc. Geralmente,
ferramenta de gerao de carga e monitorao apresenta problemas e aonde quer que
tenha sido o problema(Rede de dados, ambiente, hardware, etc.), problemas precisam
ser levantados o quanto antes para que o cronograma de execuo no seja impactado.
necessrio tambm periodicamente reconfigurar, atualizar, adicionar ou melhorar sua
gerao de carga no ambiente e as ferramentas associadas. Isso porque mesmo que a
aplicao que esteja sendo testada continuar com a mesma gerao de carga ou a
aplicao continue a mesma, provavelmente as mtricas que voc quer coletar vo
mudar.
Consideraes:
- Determinar o quanto de carga voc poder gerar antes dos geradores de carga atingir
um gargalo;
- Sincronizar o relgio da sua mquina com os relgios do servidor, banco de dados,
etc.;
- Monitorar a utilizao dos recursos(CPU, rede de dados, memria, etc.) entre os
servidores;
- Acionar o suporte responsvel por cuidar dos servidores, bando de dados, rede de
dados, etc. sempre que necessrio;
- Validar o balanceamento de carga.
Implementao do Design de Teste

Os detalhes de criao/implementao da execuo dos testes de performance so


baseados em ferramentas de automao. Dependendo da ferramenta de automao a
implementao envolve tipicamente a criao de scripts para um nico cenrio e ento
melhorando e combinando este com outros cenrios para assim representar um modelo
de carga de trabalho completo.
Consideraes:
- Garantir que os dados de teste foram implementados corretamente. Dados de
teste(massa de dados) so repositrios na forma de banco de dados, arquivos texto,
variveis na memria ou planilhas que so usados para simular parmetros de
substituio durante um teste de carga.;
- Garantir que a validao das transaes esto implementadas corretamente, pois
muitas transaes esto reportadas corretamente pelo servidor Web, mas falham ao
serem completadas;
- Validar a monitorao dos KPIs e adicionar apenas indicadores pertinentes.
Execuo dos Testes

A atividade de execuo torna-se, ento, a tarefa mais agradvel e de grande interesse


de todos do time de teste para ser realizada. Os fluxos, processos e detalhes tcnicos
dependem muito da ferramenta que se est usando, ambiente e contexto do projeto. Na
realidade, a tarefa de Teste de Performance significativamente muito mais complexa
do que se possa imaginar, ao contrrio de muitos acharem que necessrio apenas
rodar alguns scripts de teste, monitorar as mquinas e clicar em alguns botes.
medida que se comea a preparao para se executar os testes, de grande valor
adicionar um tempo extra para checar/validar alguns itens como:
- Validar se a configurao do ambiente de teste representa a configurao
esperada/projetada para os testes;
- Garantir que ambos os testes e o ambiente de teste esto corretamente configurados
para a coleta de mtricas;
- Executar um Smoke Test antes da execuo real dos testes;
- Garantir que os scripts de teste representam o modelo de carga de trabalho que se
deseja simular;
- Garantir neste momento que a coleta de indicadores de performance esto
configurados corretamente.
Consideraes:
- Validar as execues do teste;
- Validar se os scripts de carga esto usando os valores corretos de dados;

- Quando possvel, limitar o ciclo de execues para um ou dois dias. Revise e priorize
novamente aps cada ciclo execuo;
- Observar a execuo dos testes e prestar ateno se algum comportamento no
previsto anteriormente est acontecendo no momento;
- No processar dados, programas ou qualquer outra atividade que consuma muitos
recursos do computador, pois isso poder afetar a gerao da carga de trabalho,
invalidando os resultados do seu Teste de Performance;
- Desativar qualquer tipo de anti-vrus na gerao da carga de trabalho durante o teste
para minimizar a probabilidade de involuntariamente impactar os resultados do teste;
- A execuo dos testes nunca realmente finalizada, porm eventualmente vai se
chegar a um ponto desejado de um teste particular. Quando voc parar de obter
informaes as quais se deseja, avanar para outros testes.
Anlise, Relatrios e Re-teste

Gerentes e Stakeholders precisam/querem muito mais que simples resultados de vrios


testes. Eles precisam de concluses, bem como dados consolidados para apoiar suas
concluses. Membros do time(analistas) precisam no s de resultados dos testes, mas
tambm de anlises, comparaes e detalhes de como os resultados foram conseguidos.
Antes que os resultados possam ser divulgados, os dados precisam ser analisados.
Alguns pontos importantes so necessrios quando se analisa os dados retornados pelo
Teste de Performance, como:

- Analise os dados de forma individual e como parte colaborativa dentro do time de


analistas de teste;
- Analise os dados coletados e compare os resultados com mtricas aceitveis ou nveis
esperados para determinar quando a performance da aplicao que est sendo testada
mostra tendncias que vo ou esto fora dos objetivos de performance;
- Se o teste falhar, diagnsticos e atividades de tunning so geralmente aceitas;
- Se voc corrigir um gargalo, repita os testes para validar a correo;
- Use os resultados atuais para priorizar os prximos testes;
- Modifique o teste para conseguir novas/melhores/diferentes informaes se o resultado
no representar os objetivos do teste;
- A coleta de mtricas pode produzir grandes volumes de dados! A reduo destes dados
pode ser feita mediante anlise do que se pode descartar, para assim no se perder dados
valiosos;
- Freqentemente, as anlises iro revelar que para um total/completo entendimento dos
resultados de um teste particular, mtricas adicionais sero necessrias;
- Compartilhe os resultados para o resto do time a fim de receber feedbacks.
Adicionalmente, existem duas categorias principais para onde os relatrios/analises
devem ser informados:
- Relatrios Tcnicos:
Descrio do teste, incluindo modelo de carga de trabalho e ambiente de teste;
Descrio do teste, incluindo modelo de carga de trabalho e ambiente de teste;
Curtas observaes, riscos, questionamentos e requisies diversas(tempo,
colaborao de outros membros, etc.);
- Relatrios para Stakeholders:
Representaes visuais dos dados mais relevantes;
Resumos dos grficos em termos de critrios/objetivos/metas que foram atingidos;
Representaes visuais dos modelos de carga de trabalho e ambiente de teste;
Anexos de relatrios tcnicos, dados e condies de teste;
Resumo de observaes, riscos e recomendaes.
Para a grande eficcia dos relatrios, informaes pertinentes e de interesse devem ser
colocadas, levando-se em considerao o pblico-alvo, como:
- Reportes visuais;
- Relatrios antecipados e freqentes;
- Relatrios com estatsticas/dados corretos;
- Dados consolidados corretamente;
- Faa com que os dados estejam disponveis para os stakeholders;
- Filtre qualquer dado que no agrega qualquer tipo de informao relevante.
Mtricas de Performance
Existe um nmero quase que ilimitado de mtricas que podem ser coletadas durante a
execuo do Teste de Performance. Entretanto, a coleta de muitas mtricas pode fazer
com que a anlise fique muito pesada, bem como impactar negativamente a
performance atual da aplicao. Por esta razo, muito importante identificar mtricas
que so mais relevantes para os objetivos/metas de performance e as que iro
antecipadamente revelar gargalos no sistema. Apenas mtricas selecionadas e que so
analisadas corretamente podem prover algum tipo de informao valiosa.
Alguns exemplos de mtricas de performance podem ser:

Fontes e Materiais de Referncia:


Read more: http://www.linhadecodigo.com.br/artigo/3258/testes-de-performance-ciclo-de-vida-de-performance-eatividades-relacionadas-parte-2.aspx#ixzz3M1cne1Bb

Testes de Performance - Testes de Carga,


Stress e Virtualizao - Parte 3
Existem muitas razes para o teste de
carga em aplicaes Web. O tipo mais
bsico de teste de carga usado para
determinar o comportamento da
aplicao Web atravs de condies

normais e altos picos de carga. medida


que se comea o teste de carga,
recomendvel se comear com um
pequeno nmero de usurios
virtuais(Virtual Users) e ento
incrementar gradualmente a carga do
normal at o pico.
por
Fbio Martinho Campos

7010

Existem muitas razes para o teste de carga em aplicaes Web. O tipo mais bsico de
teste de carga usado para determinar o comportamento da aplicao Web atravs de
condies normais e altos picos de carga. medida que se comea o teste de carga,
recomendvel se comear com um pequeno nmero de usurios virtuais(Virtual Users)
e ento incrementar gradualmente a carga do normal at o pico.
Durante esta execuo observe como sua aplicao reage durante o aumento da carga de
trabalho.
O processo para teste de carga pode ser visualizado a seguir:

Adicionalmente, no existem modelos universalmente aceitos para este tipo de teste.


Com isso, vrios outros modelos podem ser propostos.
O modelo abaixo pode ser considerado como outro exemplo para Testes de Carga:

Balanceamento de Carga(Load-Balancing): a tcnica utilizada para


espalhar/distribuir o trabalho entre dois ou mais computadores, link de rede de dados,
CPUs, HDs e outros recursos de forma que a utilizao do recurso seja otimizada,
maximizando assim o throughput e minimizando o tempo de resposta. Usando
mltimplos componentes com balanceamento de carga, e no apenas um, pode
aumentar a confiana atravs de redundncia.
O servio de balanceamento normalmente oferecido por um programa dedicado ou
dispositivo de hardware.
Algumas funcionalidades do balanceamento de carga podem incluir:
- HTTP compression;
- HTTP caching;
- HTTP security;
- Manipulao de trfego.
Testes de Stress
Teste de Stress um tipo de Teste de Performance focado na determinao da robustez,
disponibilidade e confiana da aplicao diante de condies extremas, sendo que o
objetivo do identificar problemas na aplicao que tornam-se aparente somente diante
dessas condies.
Tais condies podem ser cargas de trabalho muito pesadas, alta simultaneidade de
usurios ou limitaes de recursos computacionais, sendo este ltimo muito comum,
uma vez que os sistemas cada vez mais esto complexos, havendo muita perda desses
recursos.
Exemplos de condies de stress podem ser:
- Volume excessivo de dados e/ou usurios;
- Reduo de recursos como capacidade de discos;
- Seqenciamento inesperado.

Exemplos de sintomas relacionados ao stress podem ser:


- Dados esto perdidos e/ou corrompidos;
- Utilizao dos recursos ainda continua inaceitvel mesmo depois que o stress
removido;
- Componentes da aplicao falha ao responder.
Virtualizao
Virtualizao a tcnica utilizada para simular/emular/representar um ambiente
segregado de uma plataforma, representando assim um ambiente virtual de operao de
certas tarefas/atividades.
Basicamente, existem trs tipos bsicos de virtualizao:
- Virtualizao Total(Full Virtualization): Onde a virtualizao apenas conseguida
combinando-se hardware e software;
- Virtualizao Parcial(Partial Virtualization): Onde a virtualizao completo do S.O.
no possvel ser executada em uma V.M.(Virtual Machine);
- Virtualizao de Aplicaes(Application Virtualization): Onde apenas a aplicao em
questo ser virtualizada.
A arquitetura de uma virtualizao mostrada a seguir:

Com a virtualizao, os seguintes benefcios podem ser conseguidos:


- Administrao simplificada;
- Hardware independente;
- Segurana;
- Ambiente segregado para desenvolvimento e teste de software;
- Treinamentos;
A virtualizao NO deve ser usada para Testes de Performance!!!
O maior objetivo para virtualizao em termos de Teste de Performance a gerao de
cargas de trabalho(Workloads).
Fontes e Materiais de Referncia:
Read more: http://www.linhadecodigo.com.br/artigo/3259/testes-de-performance-testes-de-carga-stress-evirtualizacao-parte-3.aspx#ixzz3M1cx09v2

Testes de Performance - Processos e


Ferramentas de Automao - Parte
4(FINAL)

Automao do Teste de Performance


uma necessidade do projeto e se torna
inevitvel para o sucesso em termos de
atingir os objetivos/metas acordados com
os stakeholders. Com isso, se torna
extremamente valioso a correta aquisio
da ferramenta em questo, no sendo
necessariamente a mais cara, mas sim a
que possa trazer mais facilidades e
produtividade para a equipe.
por
Fbio Martinho Campos

1201

A automao do Teste de Performance uma necessidade do projeto e se torna inevitvel para o


sucesso em termos de atingir os objetivos/metas acordados com os stakeholders.
Com isso, se torna extremamente valioso a correta aquisio da ferramenta em questo, no
sendo necessariamente a mais cara, mas sim a que possa trazer mais facilidades e produtividade
para a equipe.
Ferramentas de automao no fazem milagres!!!
Para tanto, a disponibilizao de tais ferramentas requer no apenas tempo e dinheiro, mas
preparao, planejamento e treinamento. Isso porque a automao do Teste de Performance
um processo humano.
O processo para automao de um Teste de Performance pode ser visualizado a seguir:

O qu, como e aonde automatizar? Leve em considerao a figura abaixo e imagine qual seria a
estratgia de testes ideal para que os objetivos de performance fossem atingidos:

Como j foi falado no primeiro artigo desta srie, Testes de Performance so difceis de serem
executados. O profissional que cuida deste tipo de teste deve levar emconsiderao
principalmente a arquitetura em que a aplicao est sendo construda, sem se esquecer ainda de
itens como roteadores, switches, banco de dados, servidores, firewalls, balanceadores de carga,
etc. Estes e muitos outros fatores fazem a diferena ao tentarmos identificar um gargalo na
aplicao.

Considere tambm os seguintes parmetros para a automao:

Ambiente tpico de um Teste de Performance(Exemplo: ambientes de bancos):

Aps a execuo do Teste de Performance, algumas atividades de ps-execuo so realizadas:

Ferramentas para Teste de Performance, Stress e Carga:


- HP Mercury Loadrunner;
- IBM Rational Performance Tester;
- Borland Silk Performer;
- Apache Jmeter;
- WebLOAD;
- OpenSTA;
- Gringer;
- Microsoft Web Application Stress Tool;
- WAPT;
- Neoload;
- E-Load.
Outras ferramentas open-source podem ser baixadas no link:
http://www.opensourcetesting.org/performance.php

Read more: http://www.linhadecodigo.com.br/artigo/3260/testes-de-performance-processos-e-ferramentas-deautomacao-parte-4final.aspx#ixzz3M1eofJuk

Вам также может понравиться