SlideShare uma empresa Scribd logo
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?
[TDC2019] Inteligência Artificial e Testes  in a Nutshell
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?”
+
[TDC2019] Inteligência Artificial e Testes  in a Nutshell
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

PDF
Artigoajax
PDF
Como conectar programas em linguagem java a bases de dados
PPT
Solr - Indexação e Busca com ferramenta Open Source
PDF
Teste de Desempenho, muito além do JMeter
PDF
[GUTS-RS] Testes de Performance
PDF
apresentacao_TDC_POA_Raphael_Mantilha.pdf
PPT
Webcast WebSphere Portal Performance
DOCX
Testes de carga com j meter
Artigoajax
Como conectar programas em linguagem java a bases de dados
Solr - Indexação e Busca com ferramenta Open Source
Teste de Desempenho, muito além do JMeter
[GUTS-RS] Testes de Performance
apresentacao_TDC_POA_Raphael_Mantilha.pdf
Webcast WebSphere Portal Performance
Testes de carga com j meter

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

PDF
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
PDF
Testes de Performance com JMeter
PDF
Testes de Performance - Drupal camp Florianópolis
PDF
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
PDF
Falando de Testes de Desempenho - por Evandro Grezeli
PDF
Metralhando sua API
PDF
Cmg falando de testes de desempenho
PDF
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Testes de Performance com JMeter
Testes de Performance - Drupal camp Florianópolis
[GUTS-RS] Evento julho 2017 - Como iniciar os testes de performance em uma a...
Falando de Testes de Desempenho - por Evandro Grezeli
Metralhando sua API
Cmg falando de testes de desempenho
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
Anúncio

Mais de Júlio de Lima (20)

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

Último (19)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Apple Pippin Uma breve introdução. - David Glotz
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
COBITxITIL-Entenda as diferença em uso governança TI
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula 18 - Manipulacao De Arquivos python
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula04-Academia Heri- Tecnologia Geral 2025
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14

[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?
  • 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. +
  • 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