SlideShare uma empresa Scribd logo
1 de 23
Indo Além da Automação
Com Machine Learning
Emerson Bertolo
Analytics Data Science Team
Machine Learning
Machine Learning is the science (and
art) of programming computers so
they can learn from data.
Géron, Aurélien (2017-03).
url das ilustrações:
http://codejocks.com/how-tensorflow-is-bringing-machine-learning-in-the-spotlight/
https://giphy.com
Analytics
Artificial Intelligence for Software Testing (AIST)
É um campo emergente que visa o desenvolvimento de
sistemas de IA para testar software, métodos para testar
sistemas de inteligência artificial e, finalmente, projetar
software capaz de auto-teste e auto-recuperação.
(Traduzido por Google Translator - algoritmo de NLP)
AISTA (www.aitesting.org)
AIST
Plataforma de
Gestão Testes
(Hub)
url das ilustrações: https://pixabay.com
https://giphy.com
Predições baseadas em
Experiências Passadas
Predição Ciclos de Testes
Solução Randômica de
Tentativa & Erro
Cenário Atual & Desafios
Relatórios
(Hub)
dataset
estruturado
dos ciclos
Predições baseados em
Modelos Estatísticos
Ações
SimuladasPlataforma de
Gestão Testes
(Hub)
Predição Ciclos de Testes
Nova Proposta
url das ilustrações: https://pixabay.com
https://giphy.com
Time de Diversas
Expertises
Insights Criativos
Machine Learning
Mais novo
Integrante do Time
Quais relações existem entre
os dados extraídos?
Fazendo Perguntas
Novas
raw data
(CSV, JSON)
Seleção de 5 Features
Estudo de Correlação
(entre 10 a 20)
Como fizemos?
Gênese de um Modelo Preditivo
url das ilustrações: https://pixabay.com
http://carlosbaia.com/2016/12/24/decision-tree-e-random-forest/
https://giphy.com
Random Forest
Transformação e
Normalização
Regressão Logística
dataset
normalizado
Experimentação & Seleção dos
Modelos de Aprendizagem
Regressão
Decision Tree
Random Forest
XGboost
Redes Neurais
Obtenção de
Coeficientes
Treino & Validação
300 Ciclos de Testes
Podemos facilmente embutir os
coeficientes em uma planilha
ou em API’s
Quando 2 físicos PhD’s se divertem com ML
Plataformas
Ecossistema Open Source
Ecossistema Python
Lições I
GIGO = Garbage in, Garbage out
Avaliar quais informações realmente podem ser aproveitadas
url das ilustrações: https://giphy.com
Lições II
Distribuição dos Dados Analisados
Amostras desbalanceadas são um grande desafio
url das ilustrações: https://giphy.com
Lições III
Modelos mais Simples, Modelos Melhores
6 features representavam maior impacto na predição
url das ilustrações: https://giphy.com
Lições IV
Falsas Correlações podem Invalidar seu Modelo
Modelo Simplificado com 4 features de maior correlação
url das ilustrações: https://giphy.com
Resultados
Predição e Prescrição
80% de Acurácia (acerto médio) na Predição de Atrasos
Sistema Prescritivo
Probabilidade de Conclusão: 0.0%
Classificação: Provável Atraso
Considerar aumentar o prazo planejado para 35 dias
url das ilustrações: https://giphy.com
Automação de Testes & IA
Desafios
➔ Testes quebram quando as telas mudam
➔ Dependência de DOM (web)
➔ Dependência de Posição de Tela (legado)
url das ilustrações:
https://www.slideshare.net/slideshow/embed_code/key/gffZraS6189iOJ
Uma Nova Plataforma
Arquiteturas baseadas em IA, ML, DL e Cloud Computing
Machine Learning pode adicionar inteligência às plataformas atuais de automação
Image Detection
Soluções Possíveis
➔ Computer Vision (libs como OpenCV e muitos docs)
➔ Redes Neurais Single Shot Detection - SSD (2015)
➔ TensorFlow Object Detection API (2017)
url das ilustrações:
https://github.com/tensorflow/models/tree/master/research/object_detection
Protótipo Zero
Computer Vision com OpenCV
➔ OpenCV 3
➔ Border Detection & Image Filters
➔ Android ADB
Criamos um robô capaz de acessar um dispositivo android e sozinho
explorar sua tela com cliques e swipes. Com OpenCV o sucesso da
detecção depende do estilo de tela e ícones.
Redes SSD
Predicting Box Containers
url dos principais papers:
https://arxiv.org/pdf/1512.02325.pdf
https://arxiv.org/pdf/1506.02640.pdf
Uma SSD desenha vários boxes e analisa a probabilidade de um box conter um objeto
Os boxes com maior índice de confiança são mantidos como predição
Aqui a arquitetura Yolo bastante popular na detecção de objetos
Um rede SSD possui camadas especializadas na deteção de muitos boxes
Mais rápida que a Yolo, mas tem menor acurácia
Como começamos?
➔ 2500 prints de tela
➔ Classificados em 5 categorias de objetos
➔ Uma GPU AWS - 15 min treino (média por rodada)
➔ Time de 5 pessoas - POC em 2 semanas
url das ilustrações: https://giphy.com
Rotulando Imagens
Utilizamos o pacote em Python LabelImg
Resultados com SSD
Uma rede SSD treinada ocupa apenas 4 megabytes
A rede neural aprendeu a reconhecer os botões principais e
labels de título depois de 15 minutos de treino
Resultados com SSD
Dataset final com 400 imagens de treino
Rede aprendeu a reconhecer os botões com sucesso e exatidão (maior parte)
Deteção deslocada ou sobreposta - correção pode ser aplicada usando um filtro matemático
Falsas detecções, rede deve ser treinada com telas mais heterogêneas
➔ Grande parte do esforço é obter dados de treino
➔ Scripts Python para ajuste de imagens e xml maps
➔ Utilizar a própria rede para rotular novas imagens
➔ Utilizar Imagem + Texto é mais promissor
➔ Acurácia de 100% não é factível
url das ilustrações: https://giphy.com
@ebertolo linkedin.com/in/ebertolo
www.inmetrics.com.br

Mais conteúdo relacionado

Semelhante a Agile Trends 2018 - Além da Automação com Machine Learning

PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...minastestingconference
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaJosé Roberto Araújo
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agileAlini Rebonatto
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilElias Nogueira
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de DesempenhoBase2 Tecnologia
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Bruno Rocha
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareFábio Nogueira de Lucena
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesUAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesJosé Correia
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareSaulo Arruda
 
Automated Machine Learning
Automated Machine LearningAutomated Machine Learning
Automated Machine LearningOrlando Mariano
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago Ghisi
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindJaydson Gomes
 
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
 
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
 
Utilizando Machine Learning e Java para classificar o conteúdo de páginas Web
Utilizando Machine Learning e Java para classificar o conteúdo de páginas WebUtilizando Machine Learning e Java para classificar o conteúdo de páginas Web
Utilizando Machine Learning e Java para classificar o conteúdo de páginas WebJoel Pinho Lucas
 

Semelhante a Agile Trends 2018 - Além da Automação com Machine Learning (20)

PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
[MTC 2021] As 8 melhores práticas e formas de simplificar e estruturar todos...
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de Desempenho
 
Trabalho PI I
Trabalho PI ITrabalho PI I
Trabalho PI I
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
 
acesso-ao-conhecimento
acesso-ao-conhecimentoacesso-ao-conhecimento
acesso-ao-conhecimento
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos TestesUAI Test 2014 - Storyboards - dos Requisitos aos Testes
UAI Test 2014 - Storyboards - dos Requisitos aos Testes
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Automated Machine Learning
Automated Machine LearningAutomated Machine Learning
Automated Machine Learning
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
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
 
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
 
Utilizando Machine Learning e Java para classificar o conteúdo de páginas Web
Utilizando Machine Learning e Java para classificar o conteúdo de páginas WebUtilizando Machine Learning e Java para classificar o conteúdo de páginas Web
Utilizando Machine Learning e Java para classificar o conteúdo de páginas Web
 

Agile Trends 2018 - Além da Automação com Machine Learning

  • 1. Indo Além da Automação Com Machine Learning Emerson Bertolo Analytics Data Science Team
  • 2. Machine Learning Machine Learning is the science (and art) of programming computers so they can learn from data. Géron, Aurélien (2017-03). url das ilustrações: http://codejocks.com/how-tensorflow-is-bringing-machine-learning-in-the-spotlight/ https://giphy.com
  • 3. Analytics Artificial Intelligence for Software Testing (AIST) É um campo emergente que visa o desenvolvimento de sistemas de IA para testar software, métodos para testar sistemas de inteligência artificial e, finalmente, projetar software capaz de auto-teste e auto-recuperação. (Traduzido por Google Translator - algoritmo de NLP) AISTA (www.aitesting.org) AIST
  • 4. Plataforma de Gestão Testes (Hub) url das ilustrações: https://pixabay.com https://giphy.com Predições baseadas em Experiências Passadas Predição Ciclos de Testes Solução Randômica de Tentativa & Erro Cenário Atual & Desafios Relatórios (Hub)
  • 5. dataset estruturado dos ciclos Predições baseados em Modelos Estatísticos Ações SimuladasPlataforma de Gestão Testes (Hub) Predição Ciclos de Testes Nova Proposta url das ilustrações: https://pixabay.com https://giphy.com Time de Diversas Expertises Insights Criativos Machine Learning Mais novo Integrante do Time Quais relações existem entre os dados extraídos? Fazendo Perguntas Novas
  • 6. raw data (CSV, JSON) Seleção de 5 Features Estudo de Correlação (entre 10 a 20) Como fizemos? Gênese de um Modelo Preditivo url das ilustrações: https://pixabay.com http://carlosbaia.com/2016/12/24/decision-tree-e-random-forest/ https://giphy.com Random Forest Transformação e Normalização Regressão Logística dataset normalizado Experimentação & Seleção dos Modelos de Aprendizagem Regressão Decision Tree Random Forest XGboost Redes Neurais Obtenção de Coeficientes Treino & Validação 300 Ciclos de Testes Podemos facilmente embutir os coeficientes em uma planilha ou em API’s Quando 2 físicos PhD’s se divertem com ML
  • 8. Lições I GIGO = Garbage in, Garbage out Avaliar quais informações realmente podem ser aproveitadas url das ilustrações: https://giphy.com
  • 9. Lições II Distribuição dos Dados Analisados Amostras desbalanceadas são um grande desafio url das ilustrações: https://giphy.com
  • 10. Lições III Modelos mais Simples, Modelos Melhores 6 features representavam maior impacto na predição url das ilustrações: https://giphy.com
  • 11. Lições IV Falsas Correlações podem Invalidar seu Modelo Modelo Simplificado com 4 features de maior correlação url das ilustrações: https://giphy.com
  • 12. Resultados Predição e Prescrição 80% de Acurácia (acerto médio) na Predição de Atrasos Sistema Prescritivo Probabilidade de Conclusão: 0.0% Classificação: Provável Atraso Considerar aumentar o prazo planejado para 35 dias
  • 13. url das ilustrações: https://giphy.com Automação de Testes & IA Desafios ➔ Testes quebram quando as telas mudam ➔ Dependência de DOM (web) ➔ Dependência de Posição de Tela (legado)
  • 14. url das ilustrações: https://www.slideshare.net/slideshow/embed_code/key/gffZraS6189iOJ Uma Nova Plataforma Arquiteturas baseadas em IA, ML, DL e Cloud Computing Machine Learning pode adicionar inteligência às plataformas atuais de automação
  • 15. Image Detection Soluções Possíveis ➔ Computer Vision (libs como OpenCV e muitos docs) ➔ Redes Neurais Single Shot Detection - SSD (2015) ➔ TensorFlow Object Detection API (2017) url das ilustrações: https://github.com/tensorflow/models/tree/master/research/object_detection
  • 16. Protótipo Zero Computer Vision com OpenCV ➔ OpenCV 3 ➔ Border Detection & Image Filters ➔ Android ADB Criamos um robô capaz de acessar um dispositivo android e sozinho explorar sua tela com cliques e swipes. Com OpenCV o sucesso da detecção depende do estilo de tela e ícones.
  • 17. Redes SSD Predicting Box Containers url dos principais papers: https://arxiv.org/pdf/1512.02325.pdf https://arxiv.org/pdf/1506.02640.pdf Uma SSD desenha vários boxes e analisa a probabilidade de um box conter um objeto Os boxes com maior índice de confiança são mantidos como predição Aqui a arquitetura Yolo bastante popular na detecção de objetos Um rede SSD possui camadas especializadas na deteção de muitos boxes Mais rápida que a Yolo, mas tem menor acurácia
  • 18. Como começamos? ➔ 2500 prints de tela ➔ Classificados em 5 categorias de objetos ➔ Uma GPU AWS - 15 min treino (média por rodada) ➔ Time de 5 pessoas - POC em 2 semanas url das ilustrações: https://giphy.com
  • 19. Rotulando Imagens Utilizamos o pacote em Python LabelImg
  • 20. Resultados com SSD Uma rede SSD treinada ocupa apenas 4 megabytes A rede neural aprendeu a reconhecer os botões principais e labels de título depois de 15 minutos de treino
  • 21. Resultados com SSD Dataset final com 400 imagens de treino Rede aprendeu a reconhecer os botões com sucesso e exatidão (maior parte) Deteção deslocada ou sobreposta - correção pode ser aplicada usando um filtro matemático Falsas detecções, rede deve ser treinada com telas mais heterogêneas
  • 22. ➔ Grande parte do esforço é obter dados de treino ➔ Scripts Python para ajuste de imagens e xml maps ➔ Utilizar a própria rede para rotular novas imagens ➔ Utilizar Imagem + Texto é mais promissor ➔ Acurácia de 100% não é factível url das ilustrações: https://giphy.com