SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Inteligência Artificial e Testes
in a Nutshell
Antonio Montanha Júlio de Lima
c/juliodelimasammontanha@gmail.com 

@Capco @Capco
Um pouco de
contexto…
Resolver problemas que não
são fáceis de resolver de
maneira convencional
Resolver problemas que não
são fáceis de resolver de
maneira convencional
E a academia e o mercado,
como andam?
Criação Automática
de Testes
Academia
Geração de Massa de
Dados de Teste
Identificação de Testes
Flaky
EvoSuite
Mercado
applitools
test.ai
…, neurônios, redes neurais,
algoritmos genéticos, aprendizado
supervisionado, não supervisionado,
por reforço…
…, neurônios, redes neurais,
algoritmos genéticos, aprendizado
supervisionado, não
supervisionado, por reforço…
Qualquer informação
serve?
Reconhecimento
de padrões
O que você vê aqui?
Isso é o que a
máquina vê!
O que você vê aqui?
RGB(255, 0, 0)
Reconhecimento
automático de elementos
em testes mobile
“Ow dev, tem como
você colocar um unique
ID nesse elemento, que
ta difícil viu”
“Cara, mudaram a
tela, vai ter que
mapear tudo de novo”
“Vamos ter que mudar a
linguagem do App, se
prepara para hora extra
para refatorar teste”
“Serio que você
precisa ir em cada
botãozinho cada vez
que vai mapear algo?”
+
Habilitando o classificador de IA
Identificando de forma
convencional
Identificando com IA
Identificando de forma
convencional
Identificando com IA
"Mas então isso ai é a
solução de todos meus
problemas!"
Não, essa é uma
solução para um dos
seus problemas!
Machine Learning e
Testes de Performance
Analisar dados de resultados de
teste de carga é uma atividade
onerosa, lenta e dependente da
ferramenta de testes que se usa
Analisar dados de resultados de
teste de carga é uma atividade
onerosa, lenta e dependente da
ferramenta de testes que se usa
Analisar dados
Logs, Infra ou Requisições
INTRODUÇÃO Analisar dados de resultados de teste
de carga é uma atividade onerosa,
lenta e dependente da ferramenta de
testes que se usa. A análise pode ser
baseada na análise de logs da
aplicação, da infraestrutura ou
dos dados obtidos a partir dos
usuários que executam os testes,
como vemos abaixo:
Haha!
Essa é fácil!
Foi o tempo de
resposta!
Será?
Um teste de carga executado teve
duração total de 1 hora e teve 50
usuários virtuais simultâneos
executando o cenário de login.
Dataset composto por 294.554
mil observações (registros) foi o
resultado do teste de carga
executado no Apache JMeter.
What!?

294.554 mil resultados do
teste!?
Como identificar falhas aí?
elapsed label responseCode dataType success bytes sentBytes grpThreads allThreads URL Latency IdleTime Connect
203 Acessando o site 200 TRUE 7423 375 21 21 null 0 4 0
203 Acessando a página inicial 200 text TRUE 7423 375 21 21 http://10.125.137.26/ 188 0 25
216 Acessando o site 200 TRUE 7423 375 24 24 null 0 0 0
216 Acessando a página inicial 200 text TRUE 7423 375 24 24 http://10.125.137.26/ 198 0 10
234 Acessando o site 200 TRUE 7423 375 25 25 null 0 6 0
234 Acessando a página inicial 200 text TRUE 7423 375 25 25 http://10.125.137.26/ 214 0 15
222 Acessando o site 200 TRUE 7423 375 26 26 null 0 1 0
222 Acessando a página inicial 200 text TRUE 7423 375 26 26 http://10.125.137.26/ 210 0 16
208 Acessando o site 200 TRUE 7423 375 26 26 null 0 2 0
208 Acessando a página inicial 200 text TRUE 7423 375 26 26 http://10.125.137.26/ 196 0 13
239 Acessando o site 200 TRUE 7423 375 31 31 null 0 1 0
239 Acessando a página inicial 200 text TRUE 7423 375 31 31 http://10.125.137.26/ 224 0 12
260 Acessando o site 200 TRUE 7423 375 31 31 null 0 1 0
260 Acessando a página inicial 200 text TRUE 7423 375 31 31 http://10.125.137.26/ 243 0 21
631 Acessando o site 200 TRUE 7423 375 71 71 null 0 3 0
631 Acessando a página inicial 200 text TRUE 7423 375 71 71 http://10.125.137.26/ 615 0 17
526 Fazendo o login 200 TRUE 8168 2932 77 77 null 0 3 0
Pré-Processamento
de Dados
i) Registros redundantes foram
removidos, fazendo com que o número
de 294.554 instâncias fosse
reduzido a 196.335;

ii) Os atributos de identificação foram
ignorados e apenas o seguintes foram
utilizados nos experimentos: elapsed,
bytes, sentBytes, Latency e
Connect;

iii) Os dados mencionados foram
normalizados entre a faixa de 0 a 1.
K-means
Um algoritmo de
agrupamento
(Clusterização) que tem
o objetivo de identificar
grupos de observações
semelhantes com base na
média.
Definimos, empiricamente, que
queremos saber como seria se houvesse
uma separação do dataset em 6 grupos
de informações semelhantes:
Table 1
Cluster Observações Distribuição
0 5472 3%
1 19119 10%)
2 79035 40%)
3 871 0%)
4 48549 25%)
5 43309 22%)
O grupo mais
distante, demonstra
ser observações que
fogem ao padrão,
vou investigá-lo!
Rodando o
K-means
responseMessage Quantidade
OK 50
Non HTTP response message:
157.230.233.185:80 failed to respond
761
Non HTTP response message: Connect to
157.230.233.185:80 [/157.230.233.185]
failed: Operation timed out (Connection timed
out)
9
Non HTTP response message: Operation timed
out (Read failed)
1
Non HTTP response message: Socket closed 50
Dado a alta carga de
utilização, o servidor
falhou 761 vezes ao
tentar responder.
Analisando o
Cluster
Analisando o
Cluster
Medida Tempo de Resposta
Minimum 4490
Maximum 5454
Mean 4899.352
StdDev 93.515
Haha!
Essa é fácil!
Foi o tempo de
resposta!
Haha!
Essa é fácil!
Foi o tempo de
resposta!
A
indisponibilidade
do servidor
causou o maior
número de
falhas!
Referências
- https://www.joecolantonio.com/7-
innovative-ai-test-automation-tools-future-
third-wave/
- Ahmed E. Hassan e Zhen Ming Jiang
- Jason Arbor e Jonathan Lips
Dúvidas?
Antonio Montanha Júlio de Lima
c/juliodelimasammontanha@gmail.com 

@Capco @Capco

Mais conteúdo relacionado

Semelhante a [TDC2019] Inteligência Artificial e Testes in a Nutshell

Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012Carlos Casalicchio
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceLuca Bastos
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasCJR, UnB
 
O que você precisa saber sobre testes unitários
O que você precisa saber sobre testes unitáriosO que você precisa saber sobre testes unitários
O que você precisa saber sobre testes unitáriosFilipe M. Silva
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de DesempenhoBase2 Tecnologia
 
Vale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago BordiniVale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago BordiniVale Security Conference
 
slide-grc-resoluc3a7c3a3o-de-problemas-troubleshooting.pdf
slide-grc-resoluc3a7c3a3o-de-problemas-troubleshooting.pdfslide-grc-resoluc3a7c3a3o-de-problemas-troubleshooting.pdf
slide-grc-resoluc3a7c3a3o-de-problemas-troubleshooting.pdfProfIvanSaboia
 
Melhorando o desempenho de sua maquina pelo regedit
Melhorando o desempenho de sua maquina pelo regeditMelhorando o desempenho de sua maquina pelo regedit
Melhorando o desempenho de sua maquina pelo regeditResistencia Brasilsul
 
TDC - Testes e Sistemas legados #quemNunca - SC/2016
TDC - Testes e Sistemas legados #quemNunca - SC/2016TDC - Testes e Sistemas legados #quemNunca - SC/2016
TDC - Testes e Sistemas legados #quemNunca - SC/2016Fernando Santiago
 
PCF03 - 2001 Comentada
PCF03 - 2001 ComentadaPCF03 - 2001 Comentada
PCF03 - 2001 ComentadaWalter Cunha
 
Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6Alessandro Almeida
 

Semelhante a [TDC2019] Inteligência Artificial e Testes in a Nutshell (20)

Relatório
RelatórioRelatório
Relatório
 
Visão Geral De Desenvolvimento Web Sre 2012
Visão Geral De Desenvolvimento Web   Sre 2012Visão Geral De Desenvolvimento Web   Sre 2012
Visão Geral De Desenvolvimento Web Sre 2012
 
Php12
Php12Php12
Php12
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ce
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
 
O que você precisa saber sobre testes unitários
O que você precisa saber sobre testes unitáriosO que você precisa saber sobre testes unitários
O que você precisa saber sobre testes unitários
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de Desempenho
 
Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
Questionário de automação industrial
Questionário de automação industrialQuestionário de automação industrial
Questionário de automação industrial
 
Tp03 (v1)
Tp03 (v1)Tp03 (v1)
Tp03 (v1)
 
Vale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago BordiniVale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago Bordini
 
pentester 2.pdf
pentester 2.pdfpentester 2.pdf
pentester 2.pdf
 
slide-grc-resoluc3a7c3a3o-de-problemas-troubleshooting.pdf
slide-grc-resoluc3a7c3a3o-de-problemas-troubleshooting.pdfslide-grc-resoluc3a7c3a3o-de-problemas-troubleshooting.pdf
slide-grc-resoluc3a7c3a3o-de-problemas-troubleshooting.pdf
 
Melhorando o desempenho de sua maquina pelo regedit
Melhorando o desempenho de sua maquina pelo regeditMelhorando o desempenho de sua maquina pelo regedit
Melhorando o desempenho de sua maquina pelo regedit
 
Owasp web app_flaws
Owasp web app_flawsOwasp web app_flaws
Owasp web app_flaws
 
TDC - Testes e Sistemas legados #quemNunca - SC/2016
TDC - Testes e Sistemas legados #quemNunca - SC/2016TDC - Testes e Sistemas legados #quemNunca - SC/2016
TDC - Testes e Sistemas legados #quemNunca - SC/2016
 
PCF03 - 2001 Comentada
PCF03 - 2001 ComentadaPCF03 - 2001 Comentada
PCF03 - 2001 Comentada
 
Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6Engenharia de Software I - Aula 6
Engenharia de Software I - Aula 6
 

Mais de Júlio de Lima

[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes CamadasJúlio de Lima
 
ALTER FACE Test Heuristic
ALTER FACE Test HeuristicALTER FACE Test Heuristic
ALTER FACE Test HeuristicJúlio de Lima
 
[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testesJúlio de Lima
 
Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Júlio de Lima
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de SoftwareJúlio de Lima
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em RiscoJúlio de Lima
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosJúlio de Lima
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvemJúlio de Lima
 
[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de APIJúlio de Lima
 
[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAsJúlio de Lima
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextosJúlio de Lima
 
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen FrameworkJúlio de Lima
 
[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com ProphecyJúlio de Lima
 
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?Júlio de Lima
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com CodeceptionJúlio de Lima
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com CodeceptionJúlio de Lima
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
 
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeterJúlio de Lima
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwareJúlio de Lima
 

Mais de Júlio de Lima (20)

[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas
 
ALTER FACE Test Heuristic
ALTER FACE Test HeuristicALTER FACE Test Heuristic
ALTER FACE Test Heuristic
 
[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes
 
Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes Contextos
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem
 
[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API
 
[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextos
 
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
 
[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy
 
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
 
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 

[TDC2019] Inteligência Artificial e Testes in a Nutshell

  • 1. Inteligência Artificial e Testes in a Nutshell Antonio Montanha Júlio de Lima c/juliodelimasammontanha@gmail.com @Capco @Capco
  • 3. Resolver problemas que não são fáceis de resolver de maneira convencional
  • 4. Resolver problemas que não são fáceis de resolver de maneira convencional E a academia e o mercado, como andam?
  • 5. Criação Automática de Testes Academia Geração de Massa de Dados de Teste Identificação de Testes Flaky
  • 7. …, neurônios, redes neurais, algoritmos genéticos, aprendizado supervisionado, não supervisionado, por reforço…
  • 8. …, neurônios, redes neurais, algoritmos genéticos, aprendizado supervisionado, não supervisionado, por reforço…
  • 11. Isso é o que a máquina vê! O que você vê aqui?
  • 12.
  • 15. “Ow dev, tem como você colocar um unique ID nesse elemento, que ta difícil viu” “Cara, mudaram a tela, vai ter que mapear tudo de novo” “Vamos ter que mudar a linguagem do App, se prepara para hora extra para refatorar teste” “Serio que você precisa ir em cada botãozinho cada vez que vai mapear algo?”
  • 16. +
  • 17.
  • 21. "Mas então isso ai é a solução de todos meus problemas!"
  • 22. Não, essa é uma solução para um dos seus problemas!
  • 23. Machine Learning e Testes de Performance
  • 24. Analisar dados de resultados de teste de carga é uma atividade onerosa, lenta e dependente da ferramenta de testes que se usa
  • 25. Analisar dados de resultados de teste de carga é uma atividade onerosa, lenta e dependente da ferramenta de testes que se usa Analisar dados Logs, Infra ou Requisições
  • 26. INTRODUÇÃO Analisar dados de resultados de teste de carga é uma atividade onerosa, lenta e dependente da ferramenta de testes que se usa. A análise pode ser baseada na análise de logs da aplicação, da infraestrutura ou dos dados obtidos a partir dos usuários que executam os testes, como vemos abaixo:
  • 27. Haha! Essa é fácil! Foi o tempo de resposta! Será?
  • 28. Um teste de carga executado teve duração total de 1 hora e teve 50 usuários virtuais simultâneos executando o cenário de login.
  • 29. Dataset composto por 294.554 mil observações (registros) foi o resultado do teste de carga executado no Apache JMeter.
  • 30. What!?
 294.554 mil resultados do teste!? Como identificar falhas aí?
  • 31. elapsed label responseCode dataType success bytes sentBytes grpThreads allThreads URL Latency IdleTime Connect 203 Acessando o site 200 TRUE 7423 375 21 21 null 0 4 0 203 Acessando a página inicial 200 text TRUE 7423 375 21 21 http://10.125.137.26/ 188 0 25 216 Acessando o site 200 TRUE 7423 375 24 24 null 0 0 0 216 Acessando a página inicial 200 text TRUE 7423 375 24 24 http://10.125.137.26/ 198 0 10 234 Acessando o site 200 TRUE 7423 375 25 25 null 0 6 0 234 Acessando a página inicial 200 text TRUE 7423 375 25 25 http://10.125.137.26/ 214 0 15 222 Acessando o site 200 TRUE 7423 375 26 26 null 0 1 0 222 Acessando a página inicial 200 text TRUE 7423 375 26 26 http://10.125.137.26/ 210 0 16 208 Acessando o site 200 TRUE 7423 375 26 26 null 0 2 0 208 Acessando a página inicial 200 text TRUE 7423 375 26 26 http://10.125.137.26/ 196 0 13 239 Acessando o site 200 TRUE 7423 375 31 31 null 0 1 0 239 Acessando a página inicial 200 text TRUE 7423 375 31 31 http://10.125.137.26/ 224 0 12 260 Acessando o site 200 TRUE 7423 375 31 31 null 0 1 0 260 Acessando a página inicial 200 text TRUE 7423 375 31 31 http://10.125.137.26/ 243 0 21 631 Acessando o site 200 TRUE 7423 375 71 71 null 0 3 0 631 Acessando a página inicial 200 text TRUE 7423 375 71 71 http://10.125.137.26/ 615 0 17 526 Fazendo o login 200 TRUE 8168 2932 77 77 null 0 3 0
  • 32. Pré-Processamento de Dados i) Registros redundantes foram removidos, fazendo com que o número de 294.554 instâncias fosse reduzido a 196.335;
 ii) Os atributos de identificação foram ignorados e apenas o seguintes foram utilizados nos experimentos: elapsed, bytes, sentBytes, Latency e Connect;
 iii) Os dados mencionados foram normalizados entre a faixa de 0 a 1.
  • 33. K-means Um algoritmo de agrupamento (Clusterização) que tem o objetivo de identificar grupos de observações semelhantes com base na média.
  • 34. Definimos, empiricamente, que queremos saber como seria se houvesse uma separação do dataset em 6 grupos de informações semelhantes: Table 1 Cluster Observações Distribuição 0 5472 3% 1 19119 10%) 2 79035 40%) 3 871 0%) 4 48549 25%) 5 43309 22%) O grupo mais distante, demonstra ser observações que fogem ao padrão, vou investigá-lo! Rodando o K-means
  • 35. responseMessage Quantidade OK 50 Non HTTP response message: 157.230.233.185:80 failed to respond 761 Non HTTP response message: Connect to 157.230.233.185:80 [/157.230.233.185] failed: Operation timed out (Connection timed out) 9 Non HTTP response message: Operation timed out (Read failed) 1 Non HTTP response message: Socket closed 50 Dado a alta carga de utilização, o servidor falhou 761 vezes ao tentar responder. Analisando o Cluster
  • 36. Analisando o Cluster Medida Tempo de Resposta Minimum 4490 Maximum 5454 Mean 4899.352 StdDev 93.515
  • 37. Haha! Essa é fácil! Foi o tempo de resposta!
  • 38. Haha! Essa é fácil! Foi o tempo de resposta! A indisponibilidade do servidor causou o maior número de falhas!
  • 40. Dúvidas? Antonio Montanha Júlio de Lima c/juliodelimasammontanha@gmail.com @Capco @Capco