SlideShare uma empresa Scribd logo
Testes Não Funcionais
Francisco Nauber Bernardo Gois
naubergois@gmail.com
http://www.slideshare.net/naubergois
Testes Funcionais são aplicados
a partir de um requisito de negócio
da aplicação.
Avaliam o comportamento da
aplicação. Dados de entrada são
fornecidos ,o teste é executado e o
resultado obtido é comparado a um
resultado esperado.
O teste funcional é aplicável a todas
as fases do teste (unitário,
integração, sistema e aceitação).
Testa as funcionalidades,
requerimentos, regras de negócio
presentes na documentação.
Teste Funcional
Teste Não Funcional
• São testes que verificam
a t r i b u t o s d e u m
componente de sistema
que não se relacionam
com a funcionalidade
( c o n fi a b i l i d a d e ,
eficiência, usabilidade,
m a n u t e n a b i l i d a d e e
portabilidade)
ISO 9126
LIVROS
Testes nao funcionais 1
Tipos de Teste de Desempenho
Load Testing
Load testing is the process of assessing the
quality of a system under load in order to detect
load-related problems. The rate at which different
service requests are submitted to the sys- tem
under test (SUT) is called the load . Load testing
uncovers load-related functional problems (e.g,
such as deadlocks, racing, buffer overflows and
memory leaks and non-functional problems (e.g.,
high response time and low throughput).
Jiang, Z. (2010). Automated analysis of load testing results.
… Symposium on Software testing and analysis.
• Performance testing is the process
of measuring and/or evaluating
performance related aspects of a
software system. Examples of
performance related aspects include
response time, throughput and
resource utilizations.
• Performance testing can focus on
parts of the system (e.g., unit
performance testing or GUI
performance testing), or on the
overall system. Performance testing
can also study the efficiency of
various design/architectural
decisions, different algorithms and
various system configurations.
Jiang, Z. (2010). Automated analysis of load testing results.
… Symposium on Software testing and analysis.
Stress testing is the process of putting a
system under extreme conditions to verify
the robustness of the system and/or to
detect various load-related problems
(e.g., memory leaks and deadlocks).
Examples of such conditions can either
be load-related (putting system under
normal or extreme heavy load) or limited
com- puting resources or failures (e.g.
disk full or database failure). In other
cases, stress testing is used to evaluate
the efficiency of software designs.
Jiang, Z. (2010). Automated analysis of load testing results.
… Symposium on Software testing and analysis.
Stress Testing
Workload Modeling
Workload modeling is the attempt to
create a simple and general model,
which can then be used to generate
synthetic workloads at will, possibly with
slight (but wellcontrolled!) modifications.
Feitelson, D. G. (2013). Workload Modeling for Computer Systems
Performance Evaluation.
WorkLoad Descritiva
user2 cmd2 1 13 10/19/93 18:05:14
sysadmin pwd 1 21 10/19/93 18:06:03
user8 cmd33 1 31 10/19/93 18:06:10
sysadmin pwd 1 16 10/19/93 18:06:57
sysadmin pwd 1 3 10/19/93 18:08:27
intel0 cmd11 64 165 10/19/93 18:11:36
user2 cmd2 1 19 10/19/93 18:11:59
user2 cmd2 1 11 10/19/93 18:12:28
user2 nsh 0 10 10/19/93 18:16:23
user2 cmd1 32 2482 10/19/93 18:16:37
intel0 cmd11 32 221 10/19/93 18:20:12
user2 cmd2 1 11 10/19/93 18:23:47
user6 cmd8 32 167 10/19/93 18:30:45
user6 cmd8 32 336 10/19/93 18:38:58
user6 cmd8 32 278 10/19/93 18:45:07
user6 cmd8 32 149 10/19/93 18:50:19
user6 cmd8 32 83 10/19/93 18:53:25
user6 cmd8 32 123 10/19/93 18:55:56
special CUBE D 6780 10/19/93 19:00:00
user11 nqs126 64 4791 10/19/93 20:53:58
user2 nqs127 64 10926 10/19/93 20:53:58
ysadmin pwd 1 3 10/19/93 22:14:50
sysadmin pwd 1 4 10/19/93 22:21:57
sysadmin pwd 1 3 10/19/93 22:29:15
user29 cmd211 64 29 10/19/93 22:31:46
user29 cmd211 64 4885 10/19/93 22:34:44
intel0 nsh 0 67 10/19/93 23:26:43
intel0 nsh 0 17 10/19/93 23:28:15
root nsh 0 31 10/19/93 23:28:47
user0 nqs128 128 8825 10/19/93 23:56:12
user1 nqs129 128 9771 10/20/93 02:23:21
sysadmin pwd 1 16 10/20/93 06:21:25
sysadmin pwd 1 16 10/20/93 06:21:52
sysadmin pwd 1 15 10/20/93 06:22:19
sysadmin pwd 1 16 10/20/93 06:22:45
sysadmin pwd 1 15 10/20/93 06:32:38
sysadmin pwd 1 15 10/20/93 06:33:07
sysadmin pwd 1 15 10/20/93 06:33:35
sysadmin pwd 1 14 10/20/93 06:34:08
user2 nsh 0 10 10/20/93 06:44:05
user2 cmd1 64 4474 10/20/93 06:44:18
user2 cmd2 1 20 10/20/93 06:57:59
user7 cmd9 8 110 10/20/93 07:05:19
user2 cmd2 1 15 10/20/93 07:08:46
user7 cmd9 8 78 10/20/93 07:45:41
user7 cmd9 32 11 10/20/93 07:47:24
user7 cmd9 8 203 10/20/93 07:47:42
user2 cmd2 1 16 10/20/93 07:50:51
user7 cmd9 8 175 10/20/93 07:53:24
Gerar WorkLoad a partir dos logs de acesso
WorkLoad Generativa
Testes nao funcionais 1
Processo de Teste
• Model Based Testing
• Search Based Testing
Model Based Testing
Model Based Testing
Model Based Testing
Estatística para Testes de Performance
Histogramas
Quando trabalhamos com grandes conjuntos de dados, muitas vezes é útil organizar e
resumir os dados para fornecer informações úteis e facilitar a sua visualização e seu
entendimento
DISTRIBUIÇÕES DE FREQÜÊNCIA (EM CLASSE)
Criando um histograma
168 172 170 181 169 173 164 175 182 177
176 173 170 186 183 170 168 166 169 180
175 164 181 179 172 169 174 171 178 166
183 159 168 176 188 165 172 170 166 189
172 185 168 163 188 195 182 176 174 182
Altura (em centímetros) dos atletas de um clube
É um grupamento de dados em classes, exibindo o número ou porcentagem de
observações em cada classe. Uma distribuição pode ser apresentada em forma gráfica ou
tabular.
Classe
Intervalo de
classe
Frequência
(f i)
Frequência
(f r)%
1 0 |------- 2 1 2,77%
2 2 |------- 4 2 5,55,%
3 4 |------- 6 10 27,78%
4 6 |------- 8 6 17%
5 8 |------- 10 17 47,22%
36 100%
Tabela de frequência para as notas de estatística
Total
40
Número de carros
Frequênciaderevendedores
5 10 15 20 25 30
2
4
6
8
10
12
35
Histograma do número de carros vendido
para as revendedoras
Distribuições de frequências (em classe)
Tabelas de Frequência
“Resumo de dados em Tabelas de frequência”
O número de elementos distintos é grande, o que
dificulta a análise. Exemplo: Análise da altura da turma.
Notas (X i) Frequência (f i)
0 1
1 0
2 1
3 1
4 1
5 9
6 3
7 3
8 6
9 7
10 4
Tabela de frequência para as
notas de estatística
Classe
Intervalo de
classe
Frequência
(fi)
Frequência
percentual
1 0 |------- 2 1 2,77%
2 2 |------- 4 2 5,55,%
3 4 |------- 6 10 27,78%
4 6 |------- 8 6 17%
5 8 |------- 10 17 47,22%
36 100%
Tabela de frequência para as notas de estatística
Total
A finalidade é agrupar dados!
Um engenheiro da área de vendas de uma montadora selecionou ao acaso, uma amostra de 40
revendedores autorizados em todo Brasil e anotou o número de unidades adquiridas por estes
revendedores no mês de maio. Com estes dados, ele deseja construir um quadro de frequência.
10 15 25 21 6 23 15 21 26 32
9 14 19 20 32 18 16 26 24 20
7 18 17 28 35 22 19 39 18 21
15 18 22 20 25 28 30 16 12 20
Unidades adquiridas no mês de maio
1º PASSO: Identifique o valor máximo e o valor mínimo para calcular a amplitude.
R(intervalo total) = Max - Min = 39 - 6 = 33
Passos para a construção de uma Tabela de Frequência
2º PASSO: Escolha do número de classes ou intervalos (k).
- não existe uma regra única para a determinação do tamanho e quantidade de classes.
Alguns autores afirmam que ela deve variar entre 5 e 25.
- Adotaremos o seguinte cálculo:
32,640 === nk
Importante: o valor de k deve ser um valor inteiro. Assim, neste caso pode ser: 6 ou 7.
3º PASSO: Determinação da amplitude do intervalo (h)
kk
R
h
33
==
Obs.: Como os dados coletados são números inteiros, a
amplitude também deve ser um número inteiro.
Passos para a construção de uma Tabela de Frequência
Assim, o valor da amplitude (R) deve ser acrescido de duas unidades para que sua
divisão pelo número de classes (k =7) seja um número inteiro.
5
7
3533
====
kk
R
h
4º PASSO: Rever os limites de classe preliminares. Aqui, o
arredondamento deve ser distribuído igualmente para o
limite inferior da primeira classe e o limite superior para a
última classe.
Classes
Intervalo de classe
ou número de carros
Número de
revendedores
ou frequência
Frequência
percentual
1 5 |-----------
2
3
4
5
6
7 |-------- 40
Total
Tabela de frequência
10 3 7,5%
40
10 |---------- 15 3 7,5%
15 |---------- 20 11 27,5%
20 |----------25 11 27,5%
25 |----------30 6 15%
30 |----------35 4 10%
35 2 5%
100%
5 º P A S S O :
M o n t a g e m d a
t a b e l a d e
frequência
Passos para a construção de uma Tabela de Frequência
Testes nao funcionais 1
Testes nao funcionais 1
Medidas de tendência central
● X = ∑X/N
MÉDIA ARITMÉTICA
Testes nao funcionais 1
CURVA NORMAL
PERCENTIL DE 90%
Apache JMeter is an Apache project that can be
used as a load testing tool for analyzing and
measuring the performance of a variety of services,
with a focus on web applications.
JMeter can be used as a unit-test tool for JDBC
database connections, FTP, LDAP, Webservices,
JMS,[5] HTTP, generic TCP connections and OS
native processes. One can also configure JMeter as
a monitor, although this is typically considered ad
hoc rather than advanced monitoring. It can be used
for some functional testing as well.
ARQUITETURA JMETER
Pasta dos executáveis
Documentação
Resultados
Bibliotecas
jmeter.bat
run JMeter (in GUI mode by default)
jmeterw.cmd
run JMeter without the windows shell console (in GUI
mode by default)
jmeter-n.cmd
drop a JMX file on this to run a non-GUI test
jmeter-n-r.cmd
drop a JMX file on this to run a non-GUI test remotely
jmeter-t.cmd
drop a JMX file on this to load it in GUI mode
jmeter-server.bat
start JMeter in server mode
mirror-server.cmd
runs the JMeter Mirror Server in non-GUI mode
shutdown.cmd
Run the Shutdown client to stop a non-GUI instance
gracefully
stoptest.cmd
Run the Shutdown client to stop a non-GUI instance
abruptly
Testes nao funcionais 1
Pasta de Bibliotecas
Pasta de Plugins
Plano de Teste
Gravador de Scripts
Iniciar o gravador
Árvore de resultados
1486171896463,958,1 /,200,OK,Thread Group 1-1,text,true,,71141,782,1,1,135,0,13
1486171896458,958,1 /,200,"Number of samples in transaction : 1, number of failing samples :
0",Thread Group 1-1,,true,,71141,782,1,1,135,11,13
1486171897429,365,3 /camaleao/assets/web/home.css,200,OK,Thread Group 1-1,text,true,,
33200,331,1,1,267,0,113
1486171897795,251,5 /camaleao/assets/web/javascript/detectadblock/adframe.js,200,OK,Thread
Group 1-1,text,true,,564,343,1,1,251,0,106
1486171898047,247,6 /camaleao/assets/web/javascript/detectadblock/detectadblock.js,
200,OK,Thread Group 1-1,text,true,,4349,349,1,1,247,0,106
1486171898295,483,4 /camaleao/assets/web/home.js,200,OK,Thread Group 1-1,text,true,,
114225,335,1,1,266,0,115
1486171898779,252,7 /service-worker.js,200,OK,Thread Group 1-1,text,true,,2025,451,1,1,252,0,114
1486171897428,1598,2 /,200,"Number of samples in transaction : 5, number of failing samples :
0",Thread Group 1-1,,true,,154363,1809,1,1,1283,6,554
1486171899032,456,8 /,200,OK,Thread Group 1-1,text,true,,36829,1016,1,1,155,0,12
1486171899489,134,21 /tm23947.js,200,OK,Thread Group 1-1,text,true,,4492,451,1,1,134,0,15
1486171899624,152,28 /b/par/folha.js,200,OK,Thread Group 1-1,text,true,,4685,454,1,1,152,0,14
1486171899777,111,27 /h/par/folha.js,200,OK,Thread Group 1-1,text,true,,6028,454,1,1,111,0,1
1486171899889,633,25 /tempo/weather-header-menu.js,200,OK,Thread Group 1-1,text,true,,
1893,943,1,1,54,0,0
1486171900523,1225,26 /barra/parceiro-async.js,200,OK,Thread Group 1-1,text,true,,
3459,462,1,1,1225,0,1082
Resultado de Teste
Controle de Vazão
Controle de Intercalação
Testes nao funcionais 1
Exercício:
Realize um teste na página da uol de forma que:
• 40% dos usuários visitam a página principal
• 20% visitam o caderno de notícias
• 10% visitam o caderno de esportes
• 10% visitam o caderno de economia
• O restante alterna entre educação e vídeos
Trabalhando com arquivos csv
Exercício:
Realize um teste na página do google realizando buscas
a partir de um arquivo com keywords
Think Timer
• Usuários com maior
conhecimento da
aplicação
• Usuários com menor
conhecimento da
aplicação
TIMER CONSTANTE
Testes nao funcionais 1
public class Classe extends AbstractJavaSamplerClient {
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("Scenario", "A");
return params;
}
Introdução ao Shell Script para testes de
performance:
Shell do Linux
•Linux possui diferentes tipos de Shell
–Bourne shell (sh), C shell (csh), Korn
shell (ksh), TC shell (tcsh), Bourne Again
shell (bash).
•O mais popular é o bash.
Áspas duplas -> variável interpretada
Áspas simples -> valor literal
Acento grave -> interpreta comando
cat log | awk -F, '{print $1}'
cat log | awk '{print $1 FS $8}'
Usando separador de campos
cat log | awk '{print NR FS$1 FS $8}'
Numerando linhas
awk 'FNR == 2 {print}'
Selecionando 2 linha
awk 'FNR == 5 {print $3}'
Selecionando 5 linha e terceiro campo
cat log | grep jpg
Usando grep para mostrar as linhas com imagens
Variável Descrição
$HOME O diretório HOME do usuário corrente.
$PATH Lista de diretórios separados por ponto e vírgula (;) onde serão
procurados os comandos.
$USER O usuário.
$PWD O diretório corrente.
Testes nao funcionais 1
Testes nao funcionais 1

Mais conteúdo relacionado

PDF
Seguranca informacao 1
PDF
Apresentacao Aula03 So
PDF
MRTG - SNMP na Prática
PDF
Servidor de internet (NAT, Squid, Sarg)
PPT
Mini Curso - Pen Test - Univem
PPTX
Desligando o pc pelo arquivo
PDF
Redirecionamento, pipes e processos linux
ODP
Alguns Comandos para Linux Mint
Seguranca informacao 1
Apresentacao Aula03 So
MRTG - SNMP na Prática
Servidor de internet (NAT, Squid, Sarg)
Mini Curso - Pen Test - Univem
Desligando o pc pelo arquivo
Redirecionamento, pipes e processos linux
Alguns Comandos para Linux Mint

Mais procurados (20)

PPT
ODP
Tutorial sobre iptables
PPT
Gerências de Processos: Sincronização
PPTX
SENAI - Segurança firewall
ODP
Pacotes
PDF
Python e Linux para a criação de ferramentas para pentest
PPTX
Programação Concorrente - Aula 05
PDF
Aula 8.1 - Iptables tabela Filter
PDF
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
PDF
So gabarito exerciciosescalonamentocpu-2012
PPTX
Tutorial - Cloud Computing Primeiros Acessos Linux
PPT
Iptables Completo Oliver
PDF
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
PPTX
Back track apresentação
PDF
Comando Traceroute
PDF
1os passoscisco
PDF
Tcpdump
PDF
Aula 8.3 - Iptables Tabela NAT
PDF
Seguranca da Informação - Firewall iptables
Tutorial sobre iptables
Gerências de Processos: Sincronização
SENAI - Segurança firewall
Pacotes
Python e Linux para a criação de ferramentas para pentest
Programação Concorrente - Aula 05
Aula 8.1 - Iptables tabela Filter
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
So gabarito exerciciosescalonamentocpu-2012
Tutorial - Cloud Computing Primeiros Acessos Linux
Iptables Completo Oliver
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Back track apresentação
Comando Traceroute
1os passoscisco
Tcpdump
Aula 8.3 - Iptables Tabela NAT
Seguranca da Informação - Firewall iptables
Anúncio

Destaque (20)

PDF
Sistemas operacionais1
PDF
Sistemas operacionais 3
PDF
Inteligencia artificial 4
PDF
Inteligencia artificial 1
PDF
Sistemas infgerencial 1
PDF
Inteligencia artificial 2
PDF
Sistemas operacionais 4
PDF
Inteligencia artificial 3
PDF
Sistemas infgerencial3
PDF
Invasaocom exploits
PDF
Data science
PDF
Testes não funcionais 2
PDF
Sistemas operacionais 5
PDF
Sistema infgerenciais 2
PDF
Inteligencia artificial5
PDF
Sist infgerencial4
PDF
Padrões de Projeto
PDF
Sistemas operacionais 2
PDF
Beefataque
PDF
Sistema infgerencial5
Sistemas operacionais1
Sistemas operacionais 3
Inteligencia artificial 4
Inteligencia artificial 1
Sistemas infgerencial 1
Inteligencia artificial 2
Sistemas operacionais 4
Inteligencia artificial 3
Sistemas infgerencial3
Invasaocom exploits
Data science
Testes não funcionais 2
Sistemas operacionais 5
Sistema infgerenciais 2
Inteligencia artificial5
Sist infgerencial4
Padrões de Projeto
Sistemas operacionais 2
Beefataque
Sistema infgerencial5
Anúncio

Semelhante a Testes nao funcionais 1 (20)

PPT
Aula 01
PPT
Aula3
PPT
Doc estatistica _1198613339
PPTX
Mainframe Performance Review
PPT
Ferramentas para a melhoria de produção.ppt
PPT
Ferramentas da Qualidadeeeeeeeeeeeeeeeee
PDF
Medindo O Desempenho De Processadores
PPT
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
DOCX
Computacao
PDF
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
PPT
PPT
02 Cep VariáVeis
PDF
Introdução a Programação Orientada a testes
PDF
Visualg primeira interação
PDF
Aula3.pdf
PPT
Qualidade das Ferramentas modelo ABC ppt
PDF
Proconf softwear confiabilidade
PDF
Planejamento projeto masiero
PPTX
02-MediçãoDesempenho-arquitetura-.pptx
Aula 01
Aula3
Doc estatistica _1198613339
Mainframe Performance Review
Ferramentas para a melhoria de produção.ppt
Ferramentas da Qualidadeeeeeeeeeeeeeeeee
Medindo O Desempenho De Processadores
A Automação dos Processos na Gestão de Performance das Aplicações por Gilbert...
Computacao
Análise de Sistemas - Requisitos (Revisão e Requisitos Suplementares)
02 Cep VariáVeis
Introdução a Programação Orientada a testes
Visualg primeira interação
Aula3.pdf
Qualidade das Ferramentas modelo ABC ppt
Proconf softwear confiabilidade
Planejamento projeto masiero
02-MediçãoDesempenho-arquitetura-.pptx

Mais de Nauber Gois (20)

PDF
Ai health
PDF
Inteligencia artificial 13
PDF
Sistemas operacionais 14
PDF
Sistemas operacionais 13
PDF
Inteligencia artificial 12
PDF
Sistemas operacionais 12
PDF
Sistemas operacionais 11
PDF
Sistemas operacionais 10
PDF
Inteligencia artificial 11
PDF
Sistemas operacional 9
PDF
Inteligencia artificial 10
PDF
Sistemas operacionais 8
PDF
Inteligencia artificial 9
PDF
Inteligencia artificial 8
PDF
Sist infgerenciais 8
PDF
Sist operacionais 7
PDF
Inteligencia artifical 7
PDF
Ssit informacoesgerenciais 5
PDF
Sistemas operacionais 6
PDF
Inteligencia artifical 6
Ai health
Inteligencia artificial 13
Sistemas operacionais 14
Sistemas operacionais 13
Inteligencia artificial 12
Sistemas operacionais 12
Sistemas operacionais 11
Sistemas operacionais 10
Inteligencia artificial 11
Sistemas operacional 9
Inteligencia artificial 10
Sistemas operacionais 8
Inteligencia artificial 9
Inteligencia artificial 8
Sist infgerenciais 8
Sist operacionais 7
Inteligencia artifical 7
Ssit informacoesgerenciais 5
Sistemas operacionais 6
Inteligencia artifical 6

Último (11)

PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Utilizando code blockes por andre backes
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Eng. Software - pontos essenciais para o início
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Tipos de servidor em redes de computador.pptx
Design - Introdução a Gestalt e teoria das formas
Viasol Energia Solar -Soluções para geração e economia de energia
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Arquitetura de computadores - Memórias Secundárias
Utilizando code blockes por andre backes
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Manejo integrado de pragas na cultura do algodão
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Eng. Software - pontos essenciais para o início

Testes nao funcionais 1

  • 1. Testes Não Funcionais Francisco Nauber Bernardo Gois naubergois@gmail.com http://www.slideshare.net/naubergois
  • 2. Testes Funcionais são aplicados a partir de um requisito de negócio da aplicação. Avaliam o comportamento da aplicação. Dados de entrada são fornecidos ,o teste é executado e o resultado obtido é comparado a um resultado esperado. O teste funcional é aplicável a todas as fases do teste (unitário, integração, sistema e aceitação). Testa as funcionalidades, requerimentos, regras de negócio presentes na documentação. Teste Funcional
  • 3. Teste Não Funcional • São testes que verificam a t r i b u t o s d e u m componente de sistema que não se relacionam com a funcionalidade ( c o n fi a b i l i d a d e , eficiência, usabilidade, m a n u t e n a b i l i d a d e e portabilidade)
  • 7. Tipos de Teste de Desempenho
  • 8. Load Testing Load testing is the process of assessing the quality of a system under load in order to detect load-related problems. The rate at which different service requests are submitted to the sys- tem under test (SUT) is called the load . Load testing uncovers load-related functional problems (e.g, such as deadlocks, racing, buffer overflows and memory leaks and non-functional problems (e.g., high response time and low throughput). Jiang, Z. (2010). Automated analysis of load testing results. … Symposium on Software testing and analysis.
  • 9. • Performance testing is the process of measuring and/or evaluating performance related aspects of a software system. Examples of performance related aspects include response time, throughput and resource utilizations. • Performance testing can focus on parts of the system (e.g., unit performance testing or GUI performance testing), or on the overall system. Performance testing can also study the efficiency of various design/architectural decisions, different algorithms and various system configurations. Jiang, Z. (2010). Automated analysis of load testing results. … Symposium on Software testing and analysis.
  • 10. Stress testing is the process of putting a system under extreme conditions to verify the robustness of the system and/or to detect various load-related problems (e.g., memory leaks and deadlocks). Examples of such conditions can either be load-related (putting system under normal or extreme heavy load) or limited com- puting resources or failures (e.g. disk full or database failure). In other cases, stress testing is used to evaluate the efficiency of software designs. Jiang, Z. (2010). Automated analysis of load testing results. … Symposium on Software testing and analysis. Stress Testing
  • 11. Workload Modeling Workload modeling is the attempt to create a simple and general model, which can then be used to generate synthetic workloads at will, possibly with slight (but wellcontrolled!) modifications. Feitelson, D. G. (2013). Workload Modeling for Computer Systems Performance Evaluation.
  • 13. user2 cmd2 1 13 10/19/93 18:05:14 sysadmin pwd 1 21 10/19/93 18:06:03 user8 cmd33 1 31 10/19/93 18:06:10 sysadmin pwd 1 16 10/19/93 18:06:57 sysadmin pwd 1 3 10/19/93 18:08:27 intel0 cmd11 64 165 10/19/93 18:11:36 user2 cmd2 1 19 10/19/93 18:11:59 user2 cmd2 1 11 10/19/93 18:12:28 user2 nsh 0 10 10/19/93 18:16:23 user2 cmd1 32 2482 10/19/93 18:16:37 intel0 cmd11 32 221 10/19/93 18:20:12 user2 cmd2 1 11 10/19/93 18:23:47 user6 cmd8 32 167 10/19/93 18:30:45 user6 cmd8 32 336 10/19/93 18:38:58 user6 cmd8 32 278 10/19/93 18:45:07 user6 cmd8 32 149 10/19/93 18:50:19 user6 cmd8 32 83 10/19/93 18:53:25 user6 cmd8 32 123 10/19/93 18:55:56 special CUBE D 6780 10/19/93 19:00:00 user11 nqs126 64 4791 10/19/93 20:53:58 user2 nqs127 64 10926 10/19/93 20:53:58 ysadmin pwd 1 3 10/19/93 22:14:50 sysadmin pwd 1 4 10/19/93 22:21:57 sysadmin pwd 1 3 10/19/93 22:29:15 user29 cmd211 64 29 10/19/93 22:31:46 user29 cmd211 64 4885 10/19/93 22:34:44 intel0 nsh 0 67 10/19/93 23:26:43 intel0 nsh 0 17 10/19/93 23:28:15 root nsh 0 31 10/19/93 23:28:47 user0 nqs128 128 8825 10/19/93 23:56:12 user1 nqs129 128 9771 10/20/93 02:23:21 sysadmin pwd 1 16 10/20/93 06:21:25 sysadmin pwd 1 16 10/20/93 06:21:52 sysadmin pwd 1 15 10/20/93 06:22:19 sysadmin pwd 1 16 10/20/93 06:22:45 sysadmin pwd 1 15 10/20/93 06:32:38 sysadmin pwd 1 15 10/20/93 06:33:07 sysadmin pwd 1 15 10/20/93 06:33:35 sysadmin pwd 1 14 10/20/93 06:34:08 user2 nsh 0 10 10/20/93 06:44:05 user2 cmd1 64 4474 10/20/93 06:44:18 user2 cmd2 1 20 10/20/93 06:57:59 user7 cmd9 8 110 10/20/93 07:05:19 user2 cmd2 1 15 10/20/93 07:08:46 user7 cmd9 8 78 10/20/93 07:45:41 user7 cmd9 32 11 10/20/93 07:47:24 user7 cmd9 8 203 10/20/93 07:47:42 user2 cmd2 1 16 10/20/93 07:50:51 user7 cmd9 8 175 10/20/93 07:53:24 Gerar WorkLoad a partir dos logs de acesso
  • 17. • Model Based Testing • Search Based Testing
  • 21. Estatística para Testes de Performance
  • 23. Quando trabalhamos com grandes conjuntos de dados, muitas vezes é útil organizar e resumir os dados para fornecer informações úteis e facilitar a sua visualização e seu entendimento DISTRIBUIÇÕES DE FREQÜÊNCIA (EM CLASSE) Criando um histograma 168 172 170 181 169 173 164 175 182 177 176 173 170 186 183 170 168 166 169 180 175 164 181 179 172 169 174 171 178 166 183 159 168 176 188 165 172 170 166 189 172 185 168 163 188 195 182 176 174 182 Altura (em centímetros) dos atletas de um clube
  • 24. É um grupamento de dados em classes, exibindo o número ou porcentagem de observações em cada classe. Uma distribuição pode ser apresentada em forma gráfica ou tabular. Classe Intervalo de classe Frequência (f i) Frequência (f r)% 1 0 |------- 2 1 2,77% 2 2 |------- 4 2 5,55,% 3 4 |------- 6 10 27,78% 4 6 |------- 8 6 17% 5 8 |------- 10 17 47,22% 36 100% Tabela de frequência para as notas de estatística Total 40 Número de carros Frequênciaderevendedores 5 10 15 20 25 30 2 4 6 8 10 12 35 Histograma do número de carros vendido para as revendedoras Distribuições de frequências (em classe)
  • 25. Tabelas de Frequência “Resumo de dados em Tabelas de frequência” O número de elementos distintos é grande, o que dificulta a análise. Exemplo: Análise da altura da turma. Notas (X i) Frequência (f i) 0 1 1 0 2 1 3 1 4 1 5 9 6 3 7 3 8 6 9 7 10 4 Tabela de frequência para as notas de estatística Classe Intervalo de classe Frequência (fi) Frequência percentual 1 0 |------- 2 1 2,77% 2 2 |------- 4 2 5,55,% 3 4 |------- 6 10 27,78% 4 6 |------- 8 6 17% 5 8 |------- 10 17 47,22% 36 100% Tabela de frequência para as notas de estatística Total A finalidade é agrupar dados!
  • 26. Um engenheiro da área de vendas de uma montadora selecionou ao acaso, uma amostra de 40 revendedores autorizados em todo Brasil e anotou o número de unidades adquiridas por estes revendedores no mês de maio. Com estes dados, ele deseja construir um quadro de frequência. 10 15 25 21 6 23 15 21 26 32 9 14 19 20 32 18 16 26 24 20 7 18 17 28 35 22 19 39 18 21 15 18 22 20 25 28 30 16 12 20 Unidades adquiridas no mês de maio 1º PASSO: Identifique o valor máximo e o valor mínimo para calcular a amplitude. R(intervalo total) = Max - Min = 39 - 6 = 33 Passos para a construção de uma Tabela de Frequência
  • 27. 2º PASSO: Escolha do número de classes ou intervalos (k). - não existe uma regra única para a determinação do tamanho e quantidade de classes. Alguns autores afirmam que ela deve variar entre 5 e 25. - Adotaremos o seguinte cálculo: 32,640 === nk Importante: o valor de k deve ser um valor inteiro. Assim, neste caso pode ser: 6 ou 7. 3º PASSO: Determinação da amplitude do intervalo (h) kk R h 33 == Obs.: Como os dados coletados são números inteiros, a amplitude também deve ser um número inteiro. Passos para a construção de uma Tabela de Frequência
  • 28. Assim, o valor da amplitude (R) deve ser acrescido de duas unidades para que sua divisão pelo número de classes (k =7) seja um número inteiro. 5 7 3533 ==== kk R h 4º PASSO: Rever os limites de classe preliminares. Aqui, o arredondamento deve ser distribuído igualmente para o limite inferior da primeira classe e o limite superior para a última classe. Classes Intervalo de classe ou número de carros Número de revendedores ou frequência Frequência percentual 1 5 |----------- 2 3 4 5 6 7 |-------- 40 Total Tabela de frequência 10 3 7,5% 40 10 |---------- 15 3 7,5% 15 |---------- 20 11 27,5% 20 |----------25 11 27,5% 25 |----------30 6 15% 30 |----------35 4 10% 35 2 5% 100% 5 º P A S S O : M o n t a g e m d a t a b e l a d e frequência Passos para a construção de uma Tabela de Frequência
  • 31. Medidas de tendência central ● X = ∑X/N MÉDIA ARITMÉTICA
  • 35. Apache JMeter is an Apache project that can be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications. JMeter can be used as a unit-test tool for JDBC database connections, FTP, LDAP, Webservices, JMS,[5] HTTP, generic TCP connections and OS native processes. One can also configure JMeter as a monitor, although this is typically considered ad hoc rather than advanced monitoring. It can be used for some functional testing as well.
  • 38. jmeter.bat run JMeter (in GUI mode by default) jmeterw.cmd run JMeter without the windows shell console (in GUI mode by default) jmeter-n.cmd drop a JMX file on this to run a non-GUI test jmeter-n-r.cmd drop a JMX file on this to run a non-GUI test remotely jmeter-t.cmd drop a JMX file on this to load it in GUI mode jmeter-server.bat start JMeter in server mode mirror-server.cmd runs the JMeter Mirror Server in non-GUI mode shutdown.cmd Run the Shutdown client to stop a non-GUI instance gracefully stoptest.cmd Run the Shutdown client to stop a non-GUI instance abruptly
  • 44. 1486171896463,958,1 /,200,OK,Thread Group 1-1,text,true,,71141,782,1,1,135,0,13 1486171896458,958,1 /,200,"Number of samples in transaction : 1, number of failing samples : 0",Thread Group 1-1,,true,,71141,782,1,1,135,11,13 1486171897429,365,3 /camaleao/assets/web/home.css,200,OK,Thread Group 1-1,text,true,, 33200,331,1,1,267,0,113 1486171897795,251,5 /camaleao/assets/web/javascript/detectadblock/adframe.js,200,OK,Thread Group 1-1,text,true,,564,343,1,1,251,0,106 1486171898047,247,6 /camaleao/assets/web/javascript/detectadblock/detectadblock.js, 200,OK,Thread Group 1-1,text,true,,4349,349,1,1,247,0,106 1486171898295,483,4 /camaleao/assets/web/home.js,200,OK,Thread Group 1-1,text,true,, 114225,335,1,1,266,0,115 1486171898779,252,7 /service-worker.js,200,OK,Thread Group 1-1,text,true,,2025,451,1,1,252,0,114 1486171897428,1598,2 /,200,"Number of samples in transaction : 5, number of failing samples : 0",Thread Group 1-1,,true,,154363,1809,1,1,1283,6,554 1486171899032,456,8 /,200,OK,Thread Group 1-1,text,true,,36829,1016,1,1,155,0,12 1486171899489,134,21 /tm23947.js,200,OK,Thread Group 1-1,text,true,,4492,451,1,1,134,0,15 1486171899624,152,28 /b/par/folha.js,200,OK,Thread Group 1-1,text,true,,4685,454,1,1,152,0,14 1486171899777,111,27 /h/par/folha.js,200,OK,Thread Group 1-1,text,true,,6028,454,1,1,111,0,1 1486171899889,633,25 /tempo/weather-header-menu.js,200,OK,Thread Group 1-1,text,true,, 1893,943,1,1,54,0,0 1486171900523,1225,26 /barra/parceiro-async.js,200,OK,Thread Group 1-1,text,true,, 3459,462,1,1,1225,0,1082
  • 49. Exercício: Realize um teste na página da uol de forma que: • 40% dos usuários visitam a página principal • 20% visitam o caderno de notícias • 10% visitam o caderno de esportes • 10% visitam o caderno de economia • O restante alterna entre educação e vídeos
  • 51. Exercício: Realize um teste na página do google realizando buscas a partir de um arquivo com keywords
  • 52. Think Timer • Usuários com maior conhecimento da aplicação • Usuários com menor conhecimento da aplicação
  • 55. public class Classe extends AbstractJavaSamplerClient { public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("Scenario", "A"); return params; }
  • 56. Introdução ao Shell Script para testes de performance: Shell do Linux •Linux possui diferentes tipos de Shell –Bourne shell (sh), C shell (csh), Korn shell (ksh), TC shell (tcsh), Bourne Again shell (bash). •O mais popular é o bash.
  • 57. Áspas duplas -> variável interpretada Áspas simples -> valor literal Acento grave -> interpreta comando
  • 58. cat log | awk -F, '{print $1}'
  • 59. cat log | awk '{print $1 FS $8}' Usando separador de campos cat log | awk '{print NR FS$1 FS $8}' Numerando linhas
  • 60. awk 'FNR == 2 {print}' Selecionando 2 linha awk 'FNR == 5 {print $3}' Selecionando 5 linha e terceiro campo
  • 61. cat log | grep jpg Usando grep para mostrar as linhas com imagens
  • 62. Variável Descrição $HOME O diretório HOME do usuário corrente. $PATH Lista de diretórios separados por ponto e vírgula (;) onde serão procurados os comandos. $USER O usuário. $PWD O diretório corrente.