Buscar

Testes de Desempenho

Prévia do material em texto

22/11/17 
1 
Teste e Qualidade de Software 
Testes de Desempenho 
Prof. Thiago Souza – thiagosouza@cos.ufrj.br 
Testes de Desempenho 
}  Conceitos Básicos 
}  Desempenho = Performance 
}  Mera questão de tradução. 
}  Concorrência ≠ Paralelismo 
}  Concorrência 
¨  Duas ou mais threads sendo executadas de forma concorrente, 
dividindo o acesso aos recursos (CPU, memória), dando a 
impressão ao usuário de que estão sendo executadas 
simultaneamente. 
}  Paralelismo 
¨  Duas ou mais threads sendo executadas simultaneamente. 
2 Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
2 
Dimensões do Teste 
3 Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
4 
}  Tipos de Requisitos 
}  Características de qualidade do produto 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
3 
Testes de Desempenho 
5 Testes de Desempenho - Prof. Thiago Souza 
Tipos de Teste 
Testes Funcionais 
Testes Não-Funcionais 
- Teste de Usabilidade 
- Teste de Desempenho 
- Teste de Carga 
- Teste de Estresse 
- Teste de Recuperação 
- Teste de Segurança 
- Teste de Conformidade 
Técnicas de Teste 
Teste baseado em estrutura (caixa branca) 
Teste baseado em especificação (caixa preta) 
}  Dimensões do Teste 
Testes de Desempenho 
6 
}  Harmonização de conceitos 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
4 
Testes de Desempenho 
7 
}  Definição 
}  O teste de desempenho (ou performance) mede e avalia 
o grau em que um item de teste desempenha suas 
funções designadas dentro de determinados limites de 
tempo e de uso de recursos (CPU, memória, disco, rede). 
}  Objetivos: 
}  Verificar se os critérios de desempenho estabelecidos estão 
sendo atendidos. 
}  Identificar pontos de gargalo no sistema. 
}  Verificar o nível de utilização do hardware e software. 
}  Quando usar: 
}  Quando se deseja avaliar o desempenho de uma 
funcionalidade do sistema ou de todo o sistema. 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
}  Gargalos 
8 Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
5 
Testes de Desempenho 
9 
}  Subtipos 
}  ISO/IEC/IEEE 29119-1:2013 
Fundamentos do Teste de Software - Prof. Thiago Souza 
Teste	
  de	
  Carga	
   Teste	
  de	
  
Estresse	
  
Teste	
  de	
  
Capacidade	
  
Teste	
  de	
  
Resistência	
  
Teste	
  de	
  Volume	
  
Avaliar	
  o	
  
comportamento	
  de	
  
um	
  item	
  de	
  teste	
  
em	
  condições	
  
esperadas	
  de	
  carga	
  
variável	
  (uso	
  baixo,	
  
9pico	
  e	
  de	
  pico).	
  
Avaliar	
  o	
  
comportamento	
  de	
  
um	
  item	
  de	
  teste	
  
em	
  condições	
  de	
  
carga	
  acima	
  dos	
  
requisitos	
  de	
  
capacidade	
  
antecipados	
  ou	
  
especificados	
  ou	
  da	
  
disponibilidade	
  de	
  
recursos	
  abaixo	
  dos	
  
requisitos	
  mínimos	
  
exigidos.	
  
Avaliar	
  o	
  nível	
  no	
  
qual	
  o	
  aumento	
  de	
  
carga	
  (de	
  usuários,	
  
transações,	
  
armazenamento	
  de	
  
dados,	
  etc.)	
  
compromete	
  a	
  
capacidade	
  de	
  um	
  
item	
  de	
  teste	
  para	
  
sustentar	
  o	
  
desempenho	
  
requerido.	
  
Avaliar	
  se	
  um	
  item	
  
de	
  teste	
  pode	
  
sustentar	
  uma	
  
carga	
  necessária	
  
con9nuamente	
  por	
  
um	
  período	
  de	
  
tempo	
  
determinado.	
  
Avaliar	
  a	
  
capacidade	
  do	
  item	
  
de	
  teste	
  processar	
  
volumes	
  de	
  dados	
  
especificados	
  
(usualmente	
  no	
  ou	
  
próximos	
  ao	
  limite	
  
máximo	
  de	
  
capacidade	
  
especificada)	
  em	
  
termos	
  de	
  
capacidade	
  de	
  
throughput,	
  
capacidade	
  de	
  
armazenamento,	
  
ou	
  ambos.	
  
Testes de Desempenho 
10 
}  Modelo Conceitual 
Fundamentos do Teste de Software - Prof. Thiago Souza 
22/11/17 
6 
Testes de Desempenho 
11 
}  Medidas de Desempenho 
}  ISO/IEC/IEEE 25023:2015 
Fundamentos do Teste de Software - Prof. Thiago Souza 
Comportamento	
  no	
  Tempo	
   U9lização	
  de	
  Recursos	
   Capacidade	
  
•  Tempo	
  médio	
  de	
  resposta	
  
•  Adequação	
  do	
  tempo	
  de	
  
resposta	
  
•  Tempo	
  médio	
  de	
  entrega	
  
•  Adequação	
  do	
  tempo	
  de	
  
entrega	
  
•  Throughput	
  médio	
  
•  UFlização	
  média	
  do	
  
processador	
  
•  UFlização	
  média	
  da	
  
memória	
  
•  UFlização	
  média	
  dos	
  
disposiFvos	
  de	
  E/S	
  
•  UFlização	
  da	
  largura	
  de	
  
banda	
  
•  Capacidade	
  de	
  
processamento	
  de	
  
transações	
  
•  Capacidade	
  de	
  acesso	
  de	
  
usuários	
  
•  Adequação	
  do	
  aumento	
  do	
  
números	
  de	
  acessos	
  
Testes de Desempenho 
12 
}  Subtipos 
}  Teste de Carga Baixa 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
7 
Testes de Desempenho 
13 
}  Subtipos 
}  Teste de Carga Típica 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
14 
}  Subtipos 
}  Teste de Pico de Carga 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
8 
Testes de Desempenho 
15 
}  Subtipos 
}  Teste de Estresse Típico 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
16 
}  Subtipos 
}  Teste de Pico de Estresse 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
9 
Testes de Desempenho 
17 
}  Subtipos 
}  Teste de Estresse de Recursos Insuficientes 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
18 
}  Subtipos 
}  Teste de Capacidade 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
10 
Testes de Desempenho 
19 
}  Subtipos 
}  Teste de Resistência 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
20 
}  Subtipos 
}  Teste de Volume 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
11 
Testes de Desempenho 
21 
}  Requisitos de Desempenho 
}  Em geral, os requisitos de desempenho presentes nos 
documentos de RNF não oferecem qualquer subsídio ao 
trabalho de arquitetos e testadores. 
}  P. ex., não é possível definir cenários de teste de carga com 
base nos requisitos de desempenho descritos nos atuais 
documentos de RNF. 
}  É necessário aprimorar as técnicas existentes para 
elicitação e documentação de requisitos de desempenho. 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
22 
}  Requisitos de Desempenho 
}  Elicitação 
}  Fontes de requisitos 
Testes de Desempenho - Prof. Thiago Souza 
Cliente Pessoal técnico 
(arquitetos, DBAs, 
redes, etc.) 
Requisitos 
funcionais 
Requisitos de 
segurança 
Requisitos de 
desempenho 
22/11/17 
12 
Testes de Desempenho 
23 
}  Requisitos de Desempenho 
}  Exemplos reais 
}  Nenhuma informação sobre requisitos de desempenho. 
}  “Tempo de resposta para uma transação – Não se aplica.” 
¨  Dificilmente um sistema de governo poderá ignorar esse requisito. 
}  “Tempo de resposta para uma transação online – O tempo 
médio de resposta às operações de atualização e consultas 
simples deverá ser no máximo de trinta segundos.” 
¨  0.1 segundo: sensação de resposta instantânea 
¨  Limite de tempo em que o usuário tem a sensação de resposta 
instantânea e que ele está no controle de todas as ações. 
¨  1 segundo: mantendo a linha de raciocínio 
¨  Apesar da percepção de demora, a maioria dos usuários aguarda uma 
resposta por menos de 1s mantendo-se na linha de raciocínio. 
¨  10 segundos: perdada atenção 
¨  Este é o tempo em que se perde a maioria dos usuários. 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
24 
}  Requisitos de Desempenho 
}  Exemplos reais 
}  “Tempo de resposta para uma transação - O tempo médio de 
resposta nas operações de atualizações e consultas simples 
deverá ser no máximo igual àquele estabelecido no acordo de 
serviço entre a contratante e a contratada.” 
¨  Requisito encontrado no acordo de serviço: “Atendimento 
simultâneo de 2.000 usuários”. 
¨  Documento citado não contempla tempo de resposta. 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
13 
Testes de Desempenho 
25 
}  Requisitos de Desempenho 
}  Exemplos reais 
}  “Número de usuários - A quantidade de acessos simultâneos 
estimada mínima é de 200 usuários.” 
¨  Precisamos saber a quantidade máxima! 
}  “Quantidade de acessos simultâneos – O sistema suporta 
acessos simultâneos.” 
}  “Capacidade – O sistema pode acomodar vários usuários ou 
transações.” 
¨  Quantos? Requisito impreciso e não-testável. 
}  “Capacidade - Provavelmente ocorrerá aumento de 
necessidade de capacidade. Isso será melhor especificado 
durante reuniões técnicas do sistema.” 
¨  As reuniões aconteceram e não atualizaram o requisito. 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
26 
}  Requisitos de Desempenho 
}  Situação ideal 
}  Descrições de requisitos de desempenho devem ter o potencial 
de subsidiar a criação de um modelo de carga (workload 
model). 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
14 
Testes de Desempenho 
27 
}  Lições Aprendidas no Indústria 
}  Requisitos 
}  Garanta que os requisitos e critérios de aceitação sejam 
precisos e testáveis. 
}  Ambiente 
}  Execute os testes em ambiente de produção sempre que 
possível. 
¨  Caso não seja possível, utilize um ambiente que seja similar ao de 
produção (incluindo configurações de hardware e software). 
}  Massa de teste 
}  Os dados de teste devem ser semelhantes aos de produção. 
Testes de Desempenho - Prof. Thiago Souza 
Testes de Desempenho 
28 
}  Lições Aprendidas no Indústria 
}  Projete o uso real 
}  Faça uso dos conceitos de think time e ramp-up. 
}  Baterias 
}  Execute cada cenário de teste ao menos três vezes. 
}  Integrações 
}  Utilize mocks nas integrações. 
}  Represente a arquitetura física 
Testes de Desempenho - Prof. Thiago Souza 
22/11/17 
15 
Testes de Desempenho 
29 
}  Lições Aprendidas no Indústria 
}  Monitoração de servidores 
}  Pouco adianta encher um servidor de requisições e não saber o 
que acontece internamente. 
}  Ferramentas de monitoração permitem acompanhar o tempo de 
execução de cada trecho de código por onde uma requisição 
passou, permitindo a identificação das causas de problemas de 
desempenho. 
Testes de Desempenho - Prof. Thiago Souza 
Verificação, Validação & Teste de 
Software 
Testes de Desempenho com Apache JMeter 
Prof. Thiago Souza – thiagosouza@cos.ufrj.br

Continue navegando