61
Métricas e automatização do controle de qualidade Guilherme Silveira www.alura.com.br www.caelum.com.br

Métricas e a automatização do controle de qualidade

  • Upload
    caelum

  • View
    581

  • Download
    0

Embed Size (px)

DESCRIPTION

"Essa história vai melhorar as vendas. Essa refatoração vai melhorar a manutenção". Será? Se queremos escolher histórias e manter um produto melhor para o cliente final, essa decisão deve ser baseada em alguma medida. Complexidade do código? Coesão? Aguentar altas cargas? Diminuir taxas de erro? Efetuar mais compras? Para entender qualquer uma delas é preciso medir: veremos nessa palestra como pegar um projeto cujo build mínimo está automatizado, mediremos a complexidade do código, o desempenho em relação a erros, a vendas e a percepção do usuário final. Mantemos um rastreamento dessas métricas com o passar do tempo: encontrando os commits responsáveis pela quebra nas regras estabelecidas. A decisão se algo é bom ou não deixa de ser romântico e passa a ser algo lógico.

Citation preview

Page 1: Métricas e a automatização do controle de qualidade

Métricas e automatização

do controle de qualidadeGuilherme Silveira

www.alura.com.br

www.caelum.com.br

Page 2: Métricas e a automatização do controle de qualidade

Prelude

Page 3: Métricas e a automatização do controle de qualidade

Meu cenário

Page 4: Métricas e a automatização do controle de qualidade

Copa 2014

Page 5: Métricas e a automatização do controle de qualidade

Copa 2014

Page 6: Métricas e a automatização do controle de qualidade

Copa 2014

Page 7: Métricas e a automatização do controle de qualidade

Meu cenário

• equipe técnica pequena (3 pessoas)

• garantir que funciona

• garantir que continua desenvolvendo

Page 8: Métricas e a automatização do controle de qualidade

Meu cenário

• equipe de negócios pequena (3 pessoas)

• aumentar a venda

• aumentar a felicidade

Page 9: Métricas e a automatização do controle de qualidade

"Essa história vai melhorar as vendas.”

“Essa refatoração vai melhorar a manutenção”.

Será?

Page 10: Métricas e a automatização do controle de qualidade

Hoje eu tô mais feliz!

• Comer maçã deixa mais feliz?

• Palhaço deixa mais feliz?

• O que é feliz? O que é mais feliz?

Page 11: Métricas e a automatização do controle de qualidade

“convincing methods of

measurement"

Page 12: Métricas e a automatização do controle de qualidade

Queremos saber

• Meu código é bom?

• funciona em produção

• Meu cliente comprou mais?

• testes com cliente

Page 13: Métricas e a automatização do controle de qualidade

Parte 1

Page 14: Métricas e a automatização do controle de qualidade

Meu código tá bom

• O que é bom?

• vai dar erro?

• digitar menos?

• permitir mudanças?

• complexidade?

• erros?

Page 15: Métricas e a automatização do controle de qualidade

O que é bom?

• vai dar erro? compilador.

• digitar menos? IDE.

• permitir mudanças? testes + compilador + IDE

• complexidade? medir com compl. ciclomática.

• erros? log

Page 16: Métricas e a automatização do controle de qualidade

(complexidade ciclomática)

Page 17: Métricas e a automatização do controle de qualidade

Meu código tá bom

www.aniche.com.br/publications

Page 18: Métricas e a automatização do controle de qualidade

O que vamos fazer?

• Erros em produção!!!! O que fazer???

Page 19: Métricas e a automatização do controle de qualidade

Se meu editor mostrasse…

Page 20: Métricas e a automatização do controle de qualidade

Meu código tá bom

• Capturando dados

• Complexidade por commit

• Erros por deploy

Page 21: Métricas e a automatização do controle de qualidade

Salvando complexidade

• commit + complexidade => salva o número

Page 22: Métricas e a automatização do controle de qualidade

Salvando complexidade

Page 23: Métricas e a automatização do controle de qualidade

Salvando métrica

Page 24: Métricas e a automatização do controle de qualidade

Visualizando a métrica

Page 25: Métricas e a automatização do controle de qualidade

Code Sheriff

chefe no topo = suspeito

Page 26: Métricas e a automatização do controle de qualidade

Code Sheriff

Page 27: Métricas e a automatização do controle de qualidade

Code Sheriff

Page 28: Métricas e a automatização do controle de qualidade

Code Sheriff

Page 29: Métricas e a automatização do controle de qualidade

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

Page 30: Métricas e a automatização do controle de qualidade

Bugs por deploy

• deploy + exception line => acumular as linhas

Page 31: Métricas e a automatização do controle de qualidade

Commit => Tag

Page 32: Métricas e a automatização do controle de qualidade

Metric + Metrics

Page 33: Métricas e a automatização do controle de qualidade

value / array

Page 34: Métricas e a automatização do controle de qualidade

armazenar a quantidade!

Page 35: Métricas e a automatização do controle de qualidade

Visualizando a métrica

Page 36: Métricas e a automatização do controle de qualidade
Page 37: Métricas e a automatização do controle de qualidade

Bônus

• independente de linguagem

• gratuito (thanks heroku)

• todo: providers de log, hot spots etc

Page 38: Métricas e a automatização do controle de qualidade

Resumindo

• melhor que TXT

• melhor que dashboard

• é a SUA tela de desenvolvedor

Page 39: Métricas e a automatização do controle de qualidade

Parte 2

Page 40: Métricas e a automatização do controle de qualidade

Garantias

• compilação

• refatoração (IDE, não editor)

• teste

• produção em sua IDE

Page 41: Métricas e a automatização do controle de qualidade

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?

Page 42: Métricas e a automatização do controle de qualidade

Testes A/B

• Evitar algumas variações de variáveis

• Mas mesmo assim não evita tudo

Page 43: Métricas e a automatização do controle de qualidade

Amostra: teste a/b

• Testei clientes no A: 10 compras

• Testei clientes no B: 100 compras

• Uhu! B é 10 x mais efetivo

• Será?

Page 44: Métricas e a automatização do controle de qualidade

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á?

Page 45: Métricas e a automatização do controle de qualidade

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?

Page 46: Métricas e a automatização do controle de qualidade

Amostra: teste a/b

• Capturando os dados

• opção mostrada

• resultado da ação (comprou/não comprou)

Page 47: Métricas e a automatização do controle de qualidade

Amostra: teste a/b

• nos testes que fazemos se usarmos

• 2 sigma => 95.4%

• 4.6% de chance de eu errar

• é suficiente?

Page 48: Métricas e a automatização do controle de qualidade

Amostra: teste

• Mas os físicos usam isso Guilherme

• Boson de Higgs

• Sim, com 5 sigma

• 3 x 10 -7 => 0.00007%

Page 49: Métricas e a automatização do controle de qualidade

Amostra: teste a/b

• Visualizando

• mostrando se está dentro ou fora do erro

• conclusivo ou não

Page 50: Métricas e a automatização do controle de qualidade

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

Page 51: Métricas e a automatização do controle de qualidade

google analytics

statistical significance

Page 52: Métricas e a automatização do controle de qualidade

google analytics

statistical significance

Page 53: Métricas e a automatização do controle de qualidade

z-test plugin

Page 54: Métricas e a automatização do controle de qualidade

http://www.lunametrics.com/blog/2014/05/27/statistical-significance-chrome-extension

http://code.google.com/p/r-google-analytics/

http://www.experian.com/blogs/marketing-forward/2012/12/27/statistical-significance-in

quer testar?

statistical significance

http://www.michaelwhitaker.com/2013/12/17/z-test-google-analytics/

Page 55: Métricas e a automatização do controle de qualidade

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

Page 56: Métricas e a automatização do controle de qualidade

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

Page 57: Métricas e a automatização do controle de qualidade

Fechando

Page 58: Métricas e a automatização do controle de qualidade

Resumindo

• Capture

• Armazene

• Mostre

• Acompanhe no dia a dia

• Desconfie do resultado

Page 59: Métricas e a automatização do controle de qualidade

O que eu quero

• garantias ao digitar

• garantias ao refatorar

• garantias ao rodar local

• garantias ao rodar remoto

• garantias ao mudar o processo

Page 60: Métricas e a automatização do controle de qualidade

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

Page 61: Métricas e a automatização do controle de qualidade

Métricas e automatização

do controle de qualidadeGuilherme Silveira

www.alura.com.br

www.caelum.com.br