64
Testes Não Funcionais Francisco Nauber Bernardo Gois [email protected] http://www.slideshare.net/naubergois

Testes nao funcionais 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)

ISO 9126

LIVROS

Tipos de Teste de Desempenho

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.

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

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

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

Medidas de tendência central

● X = ∑X/N

MÉDIA ARITMÉTICA

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.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

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

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 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

TIMER CONSTANTE

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 jpgUsando 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.