Upload
nauber-gois
View
101
Download
1
Embed Size (px)
Citation preview
Testes Não FuncionaisFrancisco Nauber Bernardo Gois
[email protected]://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)
Load TestingLoad 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 pe r f o rmance t es t i ng o r GUI performance testing), or on the overall system. Performance testing can also study the efficiency of v a r i o u s d e s i g n / a r c h i t e c t u r a l 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 ModelingWorkload 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.
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
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
Freq
uênc
ia d
e re
vend
edor
es
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 11 02 13 14 15 96 37 38 69 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 329 14 19 20 32 18 16 26 24 207 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 === nkImportante: 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)
kkRh 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.
573533
====kk
Rh
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.
ClassesIntervalo de classe
ou número de carros
Número de revendedores ou frequência
Frequência percentual
1 5 |----------- 234567 |-------- 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
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.
jmeter.batrun JMeter (in GUI mode by default)
jmeterw.cmdrun JMeter without the windows shell console (in GUI mode by default)
jmeter-n.cmddrop a JMX file on this to run a non-GUI test
jmeter-n-r.cmddrop a JMX file on this to run a non-GUI test remotely
jmeter-t.cmddrop a JMX file on this to load it in GUI mode
jmeter-server.batstart JMeter in server mode
mirror-server.cmdruns the JMeter Mirror Server in non-GUI mode
shutdown.cmdRun the Shutdown client to stop a non-GUI instance gracefully
stoptest.cmdRun the Shutdown client to stop a non-GUI instance abruptly
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
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
Exercício:
Realize um teste na página do google realizando buscasa partir de um arquivo com keywords
Think Timer
• Usuários com maior conhecimento da aplicação
• Usuários com menor conhecimento da aplicação
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 '{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
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.