SlideShare a Scribd company logo
1 of 61
Métricas e automatização 
do controle de qualidade 
Guilherme Silveira 
www.alura.com.br 
www.caelum.com.br
Prelude
Meu cenário
Copa 2014
Copa 2014
Copa 2014
Meu cenário 
• equipe técnica pequena (3 pessoas) 
• garantir que funciona 
• garantir que continua desenvolvendo
Meu cenário 
• equipe de negócios pequena (3 pessoas) 
• aumentar a venda 
• aumentar a felicidade
"Essa história vai melhorar as vendas.” 
“Essa refatoração vai melhorar a manutenção”. 
Será?
Hoje eu tô mais feliz! 
• Comer maçã deixa mais feliz? 
• Palhaço deixa mais feliz? 
• O que é feliz? O que é mais feliz?
“convincing methods of 
measurement"
Queremos saber 
• Meu código é bom? 
• funciona em produção 
• Meu cliente comprou mais? 
• testes com cliente
Parte 1
Meu código tá bom 
• O que é bom? 
• vai dar erro? 
• digitar menos? 
• permitir mudanças? 
• complexidade? 
• erros?
O que é bom? 
• vai dar erro? compilador. 
• digitar menos? IDE. 
• permitir mudanças? testes + compilador + IDE 
• complexidade? medir com compl. ciclomática. 
• erros? log
(complexidade ciclomática)
Meu código tá bom 
www.aniche.com.br/publications
O que vamos fazer? 
• Erros em produção!!!! O que fazer???
Se meu editor mostrasse…
Meu código tá bom 
• Capturando dados 
• Complexidade por commit 
• Erros por deploy
Salvando complexidade 
• commit + complexidade => salva o número
Salvando complexidade
Salvando métrica
Visualizando a métrica
Code Sheriff 
chefe no topo = suspeito
Code Sheriff
Code Sheriff
Code Sheriff
Code Sheriff 
“Efeitos da Prática de Revisão de Código na Caelum: 
Um Estudo de Caso Preliminar” 
quinta feira, 11:30 com Maurício Aniche e Chico Sokol
Bugs por deploy 
• deploy + exception line => acumular as linhas
Commit => Tag
Metric + Metrics
value / array
armazenar a quantidade!
Visualizando a métrica
Bônus 
• independente de linguagem 
• gratuito (thanks heroku) 
• todo: providers de log, hot spots etc
Resumindo 
• melhor que TXT 
• melhor que dashboard 
• é a SUA tela de desenvolvedor
Parte 2
Garantias 
• compilação 
• refatoração (IDE, não editor) 
• teste 
• produção em sua IDE
Meu cliente comprou mais 
• O que é mais? 
• 0.1%? 5%? 10%? 1000%? 
• O que é comprar? 
• comprar é anomalia? 
• 0.0001% => 0.01% 
• 1 compra para 100 compras?
Testes A/B 
• Evitar algumas variações de variáveis 
• Mas mesmo assim não evita tudo
Amostra: teste a/b 
• Testei clientes no A: 10 compras 
• Testei clientes no B: 100 compras 
• Uhu! B é 10 x mais efetivo 
• Será?
Amostra: teste a/b 
• Testei 100 clientes no A: 10 compras 
• Testei 10000 clientes no B: 100 compras 
• Coco! A é 10 x mais efetivo 
• Será?
Faço o teste novamente 
• Resultando completamente trocado 
• A/B => A ganha, A/B => B ganha 
• A/A’ => A ganha 
• qual a margem de erro?
Amostra: teste a/b 
• Capturando os dados 
• opção mostrada 
• resultado da ação (comprou/não comprou)
Amostra: teste a/b 
• nos testes que fazemos se usarmos 
• 2 sigma => 95.4% 
• 4.6% de chance de eu errar 
• é suficiente?
Amostra: teste 
• Mas os físicos usam isso Guilherme 
• Boson de Higgs 
• Sim, com 5 sigma 
• 3 x 10 -7 => 0.00007%
Amostra: teste a/b 
• Visualizando 
• mostrando se está dentro ou fora do erro 
• conclusivo ou não
Não adianta fazer 1000 
testes e 1 só dar certo! 
• 1000 testes vai dar caca 
• Você VAI achar um certo. E ele está errado. 
• Meta meta erro 
• Correção de Bonferroni
google analytics 
statistical significance
google analytics 
statistical significance
z-test plugin
quer testar? 
statistical significance 
experian.com/blogs/marketing-forward/2012/12/27/statistical-significance-http://code.google.com/p/r-google-analytics/ 
lunametrics.com/blog/2014/05/27/statistical-significance-chrome-extension 
http://www.michaelwhitaker.com/2013/12/17/z-test-google-analytics/
Exemplo 1 
• 20 mil visitantes/mês 
• A: 10mil, B: 10 mil 
• A converte 1% 
• B converte 30% a mais (??????) 
• 1 mês depois, 95% ok
Exemplo 2 
• 20 mil visitantes/mês 
• A: 10mil, B: 10 mil 
• A converte 1% 
• B converte 10% a mais 
• 6 meses depois, 95% ok
Fechando
Resumindo 
• Capture 
• Armazene 
• Mostre 
• Acompanhe no dia a dia 
• Desconfie do resultado
O que eu quero 
• garantias ao digitar 
• garantias ao refatorar 
• garantias ao rodar local 
• garantias ao rodar remoto 
• garantias ao mudar o processo
O que eu gosto 
• garantias ao digitar: compilador Java, Panettone 
• garantias ao refatorar: Eclipse 
• garantias ao rodar local: testes 
• garantias ao rodar remoto: testes 
• garantias ao mudar o processo: dados de 
produção
Métricas e automatização 
do controle de qualidade 
Guilherme Silveira 
www.alura.com.br 
www.caelum.com.br

More Related Content

Similar to Métricas qualidade automação 40

Product Management de Desenvolvedor para Desenvolvedor
Product Management de Desenvolvedor para DesenvolvedorProduct Management de Desenvolvedor para Desenvolvedor
Product Management de Desenvolvedor para DesenvolvedorPaulo Silveira
 
Quebrando Histórias de Usuário
Quebrando Histórias de UsuárioQuebrando Histórias de Usuário
Quebrando Histórias de UsuárioGiuliano Sposito
 
Marketplace 2022 | Diferenciação em marketplaces: é possivel ou ao final é so...
Marketplace 2022 | Diferenciação em marketplaces: é possivel ou ao final é so...Marketplace 2022 | Diferenciação em marketplaces: é possivel ou ao final é so...
Marketplace 2022 | Diferenciação em marketplaces: é possivel ou ao final é so...E-Commerce Brasil
 
Como validar suas ideias - Search Masters Brasil 2014
Como validar suas ideias - Search Masters Brasil 2014Como validar suas ideias - Search Masters Brasil 2014
Como validar suas ideias - Search Masters Brasil 2014Daniel Imamura Fernandes
 
Agile Testing no Drupal
Agile Testing no DrupalAgile Testing no Drupal
Agile Testing no DrupalJust Digital
 
Testes A/B para aumentar as conversões em e-commerces
Testes A/B para aumentar as conversões em e-commercesTestes A/B para aumentar as conversões em e-commerces
Testes A/B para aumentar as conversões em e-commercesRafael Damasceno
 
Teste A/B - O que fazer para extrair o máximo de um teste - Marcell Almeida -...
Teste A/B - O que fazer para extrair o máximo de um teste - Marcell Almeida -...Teste A/B - O que fazer para extrair o máximo de um teste - Marcell Almeida -...
Teste A/B - O que fazer para extrair o máximo de um teste - Marcell Almeida -...Marcell Almeida
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
 
Como criar cases de seo gabriel soto - tche seo
Como criar cases de seo   gabriel soto - tche seoComo criar cases de seo   gabriel soto - tche seo
Como criar cases de seo gabriel soto - tche seogabrielepsoto
 
Mitos, (nem tão) verdades (assim) e aplicações de valuation
Mitos, (nem tão) verdades (assim) e aplicações de valuationMitos, (nem tão) verdades (assim) e aplicações de valuation
Mitos, (nem tão) verdades (assim) e aplicações de valuationFelipe Pontes
 
Como empoderar a qualidade rumo a transformacao digital
Como empoderar a qualidade rumo a transformacao digitalComo empoderar a qualidade rumo a transformacao digital
Como empoderar a qualidade rumo a transformacao digitalJoyce Bastos
 
Ferramentas e Conceitos em Lean Seis Sigma
Ferramentas e Conceitos em Lean Seis SigmaFerramentas e Conceitos em Lean Seis Sigma
Ferramentas e Conceitos em Lean Seis SigmaFrancisco Mello Castro
 
Palestra no MSP Summit - ADDEE
Palestra no MSP Summit - ADDEEPalestra no MSP Summit - ADDEE
Palestra no MSP Summit - ADDEERoberto Cohen
 
O Guia Completo da Satisfação do Clientes no E-commerce
O Guia Completo da Satisfação do Clientes no E-commerceO Guia Completo da Satisfação do Clientes no E-commerce
O Guia Completo da Satisfação do Clientes no E-commerceTracksale
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionLeonardo Molinari
 

Similar to Métricas qualidade automação 40 (20)

Product Management de Desenvolvedor para Desenvolvedor
Product Management de Desenvolvedor para DesenvolvedorProduct Management de Desenvolvedor para Desenvolvedor
Product Management de Desenvolvedor para Desenvolvedor
 
Quebrando Histórias de Usuário
Quebrando Histórias de UsuárioQuebrando Histórias de Usuário
Quebrando Histórias de Usuário
 
Marketplace 2022 | Diferenciação em marketplaces: é possivel ou ao final é so...
Marketplace 2022 | Diferenciação em marketplaces: é possivel ou ao final é so...Marketplace 2022 | Diferenciação em marketplaces: é possivel ou ao final é so...
Marketplace 2022 | Diferenciação em marketplaces: é possivel ou ao final é so...
 
Como validar suas ideias - Search Masters Brasil 2014
Como validar suas ideias - Search Masters Brasil 2014Como validar suas ideias - Search Masters Brasil 2014
Como validar suas ideias - Search Masters Brasil 2014
 
Agile Testing no Drupal
Agile Testing no DrupalAgile Testing no Drupal
Agile Testing no Drupal
 
Agile Testing com Drupal
Agile Testing com DrupalAgile Testing com Drupal
Agile Testing com Drupal
 
Palestra Predicta
Palestra PredictaPalestra Predicta
Palestra Predicta
 
Testes A/B para aumentar as conversões em e-commerces
Testes A/B para aumentar as conversões em e-commercesTestes A/B para aumentar as conversões em e-commerces
Testes A/B para aumentar as conversões em e-commerces
 
Teste A/B - O que fazer para extrair o máximo de um teste - Marcell Almeida -...
Teste A/B - O que fazer para extrair o máximo de um teste - Marcell Almeida -...Teste A/B - O que fazer para extrair o máximo de um teste - Marcell Almeida -...
Teste A/B - O que fazer para extrair o máximo de um teste - Marcell Almeida -...
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 
TesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdfTesteDeSoftware_WorkshopSINFO2014.pdf
TesteDeSoftware_WorkshopSINFO2014.pdf
 
Como criar cases de seo gabriel soto - tche seo
Como criar cases de seo   gabriel soto - tche seoComo criar cases de seo   gabriel soto - tche seo
Como criar cases de seo gabriel soto - tche seo
 
Mitos, (nem tão) verdades (assim) e aplicações de valuation
Mitos, (nem tão) verdades (assim) e aplicações de valuationMitos, (nem tão) verdades (assim) e aplicações de valuation
Mitos, (nem tão) verdades (assim) e aplicações de valuation
 
Internet e o Seu Negócio
Internet e o Seu Negócio Internet e o Seu Negócio
Internet e o Seu Negócio
 
Como empoderar a qualidade rumo a transformacao digital
Como empoderar a qualidade rumo a transformacao digitalComo empoderar a qualidade rumo a transformacao digital
Como empoderar a qualidade rumo a transformacao digital
 
Ferramentas e Conceitos em Lean Seis Sigma
Ferramentas e Conceitos em Lean Seis SigmaFerramentas e Conceitos em Lean Seis Sigma
Ferramentas e Conceitos em Lean Seis Sigma
 
Palestra no MSP Summit - ADDEE
Palestra no MSP Summit - ADDEEPalestra no MSP Summit - ADDEE
Palestra no MSP Summit - ADDEE
 
14º WAW - Apresentação Kenzo Real
14º WAW - Apresentação Kenzo Real14º WAW - Apresentação Kenzo Real
14º WAW - Apresentação Kenzo Real
 
O Guia Completo da Satisfação do Clientes no E-commerce
O Guia Completo da Satisfação do Clientes no E-commerceO Guia Completo da Satisfação do Clientes no E-commerce
O Guia Completo da Satisfação do Clientes no E-commerce
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final Version
 

More from Caelum

Performance Web além do carregamento
Performance Web além do carregamentoPerformance Web além do carregamento
Performance Web além do carregamentoCaelum
 
Desafios de Performance Web - BrazilJS
Desafios de Performance Web - BrazilJSDesafios de Performance Web - BrazilJS
Desafios de Performance Web - BrazilJSCaelum
 
Performance na web: o modelo RAIL e outras novidades
Performance na web: o modelo RAIL e outras novidadesPerformance na web: o modelo RAIL e outras novidades
Performance na web: o modelo RAIL e outras novidadesCaelum
 
Progressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficadaProgressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficadaCaelum
 
Tudo que você precisa saber sobre picture e srcset
Tudo que você precisa saber sobre picture e srcsetTudo que você precisa saber sobre picture e srcset
Tudo que você precisa saber sobre picture e srcsetCaelum
 
Como o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaComo o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaCaelum
 
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio LopesHTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio LopesCaelum
 
Offline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesOffline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesCaelum
 
Além do responsive design: a mudança de paradigma do design adaptativo e os m...
Além do responsive design: a mudança de paradigma do design adaptativo e os m...Além do responsive design: a mudança de paradigma do design adaptativo e os m...
Além do responsive design: a mudança de paradigma do design adaptativo e os m...Caelum
 
Por trás dos frameworks e além do reflection
Por trás dos frameworks e além do reflectionPor trás dos frameworks e além do reflection
Por trás dos frameworks e além do reflectionCaelum
 
Otimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo MobileOtimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo MobileCaelum
 
Introducao a inteligencia artificial na educacao
Introducao a inteligencia artificial na educacaoIntroducao a inteligencia artificial na educacao
Introducao a inteligencia artificial na educacaoCaelum
 
Otimizando o time to market - do zero a produção em poucas iterações
Otimizando o time to market - do zero a produção em poucas iteraçõesOtimizando o time to market - do zero a produção em poucas iterações
Otimizando o time to market - do zero a produção em poucas iteraçõesCaelum
 
All you need to know about JavaScript loading and execution in the browser - ...
All you need to know about JavaScript loading and execution in the browser - ...All you need to know about JavaScript loading and execution in the browser - ...
All you need to know about JavaScript loading and execution in the browser - ...Caelum
 
Wsrest 2013
Wsrest 2013Wsrest 2013
Wsrest 2013Caelum
 
Design Responsivo por uma Web única
Design Responsivo por uma Web únicaDesign Responsivo por uma Web única
Design Responsivo por uma Web únicaCaelum
 
Os Caminhos de uma Estratégia Mobile
Os Caminhos de uma Estratégia MobileOs Caminhos de uma Estratégia Mobile
Os Caminhos de uma Estratégia MobileCaelum
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Caelum
 
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...Caelum
 
Plataforma java: detalhes da JVM
Plataforma java: detalhes da JVMPlataforma java: detalhes da JVM
Plataforma java: detalhes da JVMCaelum
 

More from Caelum (20)

Performance Web além do carregamento
Performance Web além do carregamentoPerformance Web além do carregamento
Performance Web além do carregamento
 
Desafios de Performance Web - BrazilJS
Desafios de Performance Web - BrazilJSDesafios de Performance Web - BrazilJS
Desafios de Performance Web - BrazilJS
 
Performance na web: o modelo RAIL e outras novidades
Performance na web: o modelo RAIL e outras novidadesPerformance na web: o modelo RAIL e outras novidades
Performance na web: o modelo RAIL e outras novidades
 
Progressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficadaProgressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficada
 
Tudo que você precisa saber sobre picture e srcset
Tudo que você precisa saber sobre picture e srcsetTudo que você precisa saber sobre picture e srcset
Tudo que você precisa saber sobre picture e srcset
 
Como o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaComo o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vida
 
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio LopesHTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
HTTP/2, SPDY e Otimizações Web - Front In Maceió 2014 - Sérgio Lopes
 
Offline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesOffline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio Lopes
 
Além do responsive design: a mudança de paradigma do design adaptativo e os m...
Além do responsive design: a mudança de paradigma do design adaptativo e os m...Além do responsive design: a mudança de paradigma do design adaptativo e os m...
Além do responsive design: a mudança de paradigma do design adaptativo e os m...
 
Por trás dos frameworks e além do reflection
Por trás dos frameworks e além do reflectionPor trás dos frameworks e além do reflection
Por trás dos frameworks e além do reflection
 
Otimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo MobileOtimizações de Performance Web: Desafios do Mundo Mobile
Otimizações de Performance Web: Desafios do Mundo Mobile
 
Introducao a inteligencia artificial na educacao
Introducao a inteligencia artificial na educacaoIntroducao a inteligencia artificial na educacao
Introducao a inteligencia artificial na educacao
 
Otimizando o time to market - do zero a produção em poucas iterações
Otimizando o time to market - do zero a produção em poucas iteraçõesOtimizando o time to market - do zero a produção em poucas iterações
Otimizando o time to market - do zero a produção em poucas iterações
 
All you need to know about JavaScript loading and execution in the browser - ...
All you need to know about JavaScript loading and execution in the browser - ...All you need to know about JavaScript loading and execution in the browser - ...
All you need to know about JavaScript loading and execution in the browser - ...
 
Wsrest 2013
Wsrest 2013Wsrest 2013
Wsrest 2013
 
Design Responsivo por uma Web única
Design Responsivo por uma Web únicaDesign Responsivo por uma Web única
Design Responsivo por uma Web única
 
Os Caminhos de uma Estratégia Mobile
Os Caminhos de uma Estratégia MobileOs Caminhos de uma Estratégia Mobile
Os Caminhos de uma Estratégia Mobile
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
 
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
[FrontInBH 2012] Por uma web mais rápida: técnicas de otimizações de sites - ...
 
Plataforma java: detalhes da JVM
Plataforma java: detalhes da JVMPlataforma java: detalhes da JVM
Plataforma java: detalhes da JVM
 

Métricas qualidade automação 40