O documento discute como o machine learning pode ser aplicado para melhorar os processos de automação de testes de software. Ele apresenta um caso em que modelos preditivos foram treinados com dados históricos de ciclos de teste para prever atrasos com 80% de acurácia. Também mostra como redes neurais podem ser usadas para detectar elementos de interface em telas e automatizar cliques por meio de visão computacional.
O modelo de utilização dos recursos computacionais vem passando por grandes transformações o que implica numa grande quantidade de registros gerados. Seja numa estrutura clássica ou no conceito de entrega de serviço, muitos registros são gerados e armazenados nos logs de cada recurso oferecido. Existem propostas de consolidar todos esses logs a fim de facilitar a análise das ocorrências, porém ainda assim é uma grande quantidade de dados concentrada e nem sempre num formado padronizado e estruturado de armazenamento. Esse artigo aborda essa questão de como classificar, extrair dados relevantes de diferentes fontes de armazenamento e apontar onde está a causa raiz de um comportamento anômalo a fim de minimizar o impacto dessa condição que afeta a disponibilidade dos recursos computacionais.
TDC - Testes e Sistemas legados #quemNunca - SC/2016Fernando Santiago
Esta apresentação aborda um estudo sobre testes de software, seus paradigmas e a aplicação da automação de testes em um sistema legado. Para a aplicação da metodologia de testes apresentada, foi utilizado como estudo de caso o sistema Sienge, sistema de gestão voltado a Indústria da Construção, desenvolvido em ambiente web. Este estudo apresenta e aplica técnicas de testes relacionadas a sistemas isentos de padrões que impedem a garantia da qualidade do sistema ao todo. Entretanto, o trabalho visa compreender como inserir as práticas de testes automatizados no ciclo de vida de desenvolvimento de um software utilizando uma abordagem pragmática.
O modelo de utilização dos recursos computacionais vem passando por grandes transformações o que implica numa grande quantidade de registros gerados. Seja numa estrutura clássica ou no conceito de entrega de serviço, muitos registros são gerados e armazenados nos logs de cada recurso oferecido. Existem propostas de consolidar todos esses logs a fim de facilitar a análise das ocorrências, porém ainda assim é uma grande quantidade de dados concentrada e nem sempre num formado padronizado e estruturado de armazenamento. Esse artigo aborda essa questão de como classificar, extrair dados relevantes de diferentes fontes de armazenamento e apontar onde está a causa raiz de um comportamento anômalo a fim de minimizar o impacto dessa condição que afeta a disponibilidade dos recursos computacionais.
TDC - Testes e Sistemas legados #quemNunca - SC/2016Fernando Santiago
Esta apresentação aborda um estudo sobre testes de software, seus paradigmas e a aplicação da automação de testes em um sistema legado. Para a aplicação da metodologia de testes apresentada, foi utilizado como estudo de caso o sistema Sienge, sistema de gestão voltado a Indústria da Construção, desenvolvido em ambiente web. Este estudo apresenta e aplica técnicas de testes relacionadas a sistemas isentos de padrões que impedem a garantia da qualidade do sistema ao todo. Entretanto, o trabalho visa compreender como inserir as práticas de testes automatizados no ciclo de vida de desenvolvimento de um software utilizando uma abordagem pragmática.
No decorrer dos anos o teste de software tem evoluído e com isto
encontramos diversas ferramentas nos dias de hoje que nos ajudam a
entregar um serviço mais maduro e consolidado, uma destas ferramentas
é o Teste de Unidade (PHPUnit), na conversa o palestrante apresenta
alguns recursos para se utilizar junto com o PHPUnit e alguns exemplos
do uso do aplicativo.
Esta apresentação foi utilizada na QCon SP, 2016. O objetivo foi mostrar quais foram os desafios e dificuldades enfrentadas pelo time na migração do front-end para novas tecnologias, utilização de sistema de caching e manter integração com o checkout legado.
A apresentação aborda motivação para a realização dessa modalidade de testes, bem como os conceitos principais que precisam ser compreendidos. Também apresenta uma metodologia básica de um teste de desempenho, as principais métricas que necessitam ser capturadas e analisadas e as ferramentas atualmente disponíveis no mercado. Por último são abordados ainda os erros mais comuns ao se planejar e executar essa classe de testes.
UAI Test 2014 - Storyboards - dos Requisitos aos TestesJosé Correia
Storyboards são uma forma prática e divertida de melhorar a comunicação em todas as etapas do ciclo de vida do desenvolvimento de um software.
Do levantamento dos requisitos junto aos usuários, passando pela comunicação do time e chegando até o teste do sistema, todos podem contribuir.
Estudo de caso sobre Arquitetura de Software realizado para o curso de especialização em Banco de Dados da UNIDERP/Anhanguera em 18/04/2009 a convite do prof. Edilmar Alves.
Criando Aplicações .NET com o TheWebMindJaydson Gomes
O TheWebMind é uma plataforma livre desenvolvida em PHP que possui a capacidade de interpretar o conhecimento humano. Baseada no conceito NLP(Natural Language Processing) o TheWebMind possui sua própria linguagem (WML) que é similar a linguagem natural humana. Atualmente o projeto conta conta com 2 módulos nativos que geram código para aplicaçoes PHP e um módulo JAVA em fase de desenvolvimento. O objetivo da palestra é apresentar o conceito do TheWebMind e seu novo módulo baseado na plataforma .NET. O módulo .NET visa automatizar o desenvolvimento de aplicaçoes Web, criando uma estrutura MVC com poucas linhas de código WML.
Palestra voltada a empreendedores interessados em conhecer mais sobre tecnologias de internet, possibilidades, e potencial. Também, inclui conhecimentos básicos de programação, para profissionais que tem interesse em ingressar na área
No decorrer dos anos o teste de software tem evoluído e com isto
encontramos diversas ferramentas nos dias de hoje que nos ajudam a
entregar um serviço mais maduro e consolidado, uma destas ferramentas
é o Teste de Unidade (PHPUnit), na conversa o palestrante apresenta
alguns recursos para se utilizar junto com o PHPUnit e alguns exemplos
do uso do aplicativo.
Esta apresentação foi utilizada na QCon SP, 2016. O objetivo foi mostrar quais foram os desafios e dificuldades enfrentadas pelo time na migração do front-end para novas tecnologias, utilização de sistema de caching e manter integração com o checkout legado.
A apresentação aborda motivação para a realização dessa modalidade de testes, bem como os conceitos principais que precisam ser compreendidos. Também apresenta uma metodologia básica de um teste de desempenho, as principais métricas que necessitam ser capturadas e analisadas e as ferramentas atualmente disponíveis no mercado. Por último são abordados ainda os erros mais comuns ao se planejar e executar essa classe de testes.
UAI Test 2014 - Storyboards - dos Requisitos aos TestesJosé Correia
Storyboards são uma forma prática e divertida de melhorar a comunicação em todas as etapas do ciclo de vida do desenvolvimento de um software.
Do levantamento dos requisitos junto aos usuários, passando pela comunicação do time e chegando até o teste do sistema, todos podem contribuir.
Estudo de caso sobre Arquitetura de Software realizado para o curso de especialização em Banco de Dados da UNIDERP/Anhanguera em 18/04/2009 a convite do prof. Edilmar Alves.
Criando Aplicações .NET com o TheWebMindJaydson Gomes
O TheWebMind é uma plataforma livre desenvolvida em PHP que possui a capacidade de interpretar o conhecimento humano. Baseada no conceito NLP(Natural Language Processing) o TheWebMind possui sua própria linguagem (WML) que é similar a linguagem natural humana. Atualmente o projeto conta conta com 2 módulos nativos que geram código para aplicaçoes PHP e um módulo JAVA em fase de desenvolvimento. O objetivo da palestra é apresentar o conceito do TheWebMind e seu novo módulo baseado na plataforma .NET. O módulo .NET visa automatizar o desenvolvimento de aplicaçoes Web, criando uma estrutura MVC com poucas linhas de código WML.
Palestra voltada a empreendedores interessados em conhecer mais sobre tecnologias de internet, possibilidades, e potencial. Também, inclui conhecimentos básicos de programação, para profissionais que tem interesse em ingressar na área
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)
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
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