lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

61
Globalcode – Open4education quinta-feira, 11 de julho de 2013

Upload: eder-ignatowicz

Post on 18-Dec-2014

1.221 views

Category:

Documents


2 download

DESCRIPTION

Talk apresentada no TDC 2013 SP Eder Ignatowicz e Fabio Santos

TRANSCRIPT

Page 1: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

quinta-feira, 11 de julho de 2013

Page 2: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Lições do Futuro: O que eu queria saber há alguns anos atrás

sobre como manter uma suíte de testesquinta-feira, 11 de julho de 2013

Page 3: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

@ederign

@flsusp

quinta-feira, 11 de julho de 2013

Page 4: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

quinta-feira, 11 de julho de 2013

Page 5: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

quinta-feira, 11 de julho de 2013

Page 6: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Maior grupo financeiro de câmbio do Brasil

quinta-feira, 11 de julho de 2013

Page 7: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

quinta-feira, 11 de julho de 2013

Page 8: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

quinta-feira, 11 de julho de 2013

Page 9: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

quinta-feira, 11 de julho de 2013

Page 10: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

quinta-feira, 11 de julho de 2013

Page 11: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Qualidade não é negociável!!!

Você tem o direito de fazer certo!

quinta-feira, 11 de julho de 2013

Page 12: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Testes Unitários

Testes de Integração

quinta-feira, 11 de julho de 2013

Page 13: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

BDD

Desenvolvimento de Framework Próprio

quinta-feira, 11 de julho de 2013

Page 14: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Testes Funcionais

quinta-feira, 11 de julho de 2013

Page 15: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Abandono Testes Integração

quinta-feira, 11 de julho de 2013

Page 16: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

BDD + Testes Funcionais

+

quinta-feira, 11 de julho de 2013

Page 17: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Alta taxa de Cobertura

quinta-feira, 11 de julho de 2013

Page 18: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Cliente Feliz4 anos de projeto (~12 pessoas)

quinta-feira, 11 de julho de 2013

Page 19: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Planejamento focado na

mitigação de riscos

Parceria TI e Business

Arquitetura Sólida e escalável

quinta-feira, 11 de julho de 2013

Page 20: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Deploy ~1x/SemanaPlataforma Bancária

quinta-feira, 11 de julho de 2013

Page 21: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

“Continuous Delivery”#osDevPira

quinta-feira, 11 de julho de 2013

Page 22: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Números do Projeto

~1 Release por Semana1.6k Testes de Aceitação

160k Operações/mês400k Requests/dia

1k Usuários em dias normais17 Nós no Cluster

quinta-feira, 11 de julho de 2013

Page 23: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Explosão na Quantidade de Testes Funcionais

quinta-feira, 11 de julho de 2013

Page 24: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Lentidão na execução da suíte de testes

quinta-feira, 11 de julho de 2013

Page 25: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Time Triste

quinta-feira, 11 de julho de 2013

Page 26: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Onde erramos?

Como saber se minha suíte de testes não está indo para o buraco?

quinta-feira, 11 de julho de 2013

Page 27: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Bugs em Produção

Seus testes não passam?

Você não tem testes?

quinta-feira, 11 de julho de 2013

Page 28: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Seus testes passam?

Você não está testando a funcionalidade certa!

Você não está testando o sistema correto

Bugs em Produção

quinta-feira, 11 de julho de 2013

Page 29: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Em produção funciona?

Você não está testando o sistema certo!

Teste quebra

quinta-feira, 11 de julho de 2013

Page 30: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Funcionalidade é alterada

Seu teste passa sem precisar de alteração?

Você não está testando a funcionalidade correta!

quinta-feira, 11 de julho de 2013

Page 31: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Você corrige um defeito

Seu teste passa a quebrar?

Você não está focando seus testes na funcionalidade e sim no sistema

quinta-feira, 11 de julho de 2013

Page 32: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Você altera o sistema

Não tem feedback rápido dos testes?

quinta-feira, 11 de julho de 2013

Page 33: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Você tem um problema arquitetural nos seus testes!

Você não vai rodar a sua suíte! (sob pressão)

quinta-feira, 11 de julho de 2013

Page 34: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Você faz uma pequena alteração no sistema

É difícil identificar um teste que possa ser rodado agora?

É difícil identificar qual teste foi afetado?

quinta-feira, 11 de julho de 2013

Page 35: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Você não vai testar a funcionalidade e nem rodar a suíte completa porque ela é lenta

Você vai implantar com a suíte quebrada

quinta-feira, 11 de julho de 2013

Page 36: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Você vai demorar para identificar o que quebrou

Você vai implantar em produção com a sua suíte

quebrada

Pequena alteração, muitos testes quebram?

quinta-feira, 11 de julho de 2013

Page 37: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Mas quais são as características de uma boa suíte de testes?

quinta-feira, 11 de julho de 2013

Page 38: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Uma boa suíte de testes é qualquer suíte de testes que não tenha os

problemas apresentados!

quinta-feira, 11 de julho de 2013

Page 39: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Mas e se eu tivesse uma máquina do tempo?

quinta-feira, 11 de julho de 2013

Page 40: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Não existe bala de prata

quinta-feira, 11 de julho de 2013

Page 41: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Mas o que talvez (provavelmente) funcione?

quinta-feira, 11 de julho de 2013

Page 42: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

3 F’s - Corey Haines

FastCiclo TDD - < 1 min

Ciclo Integração - rápido o suficiente Suíte Lenta == Builds Quebradas

FocusedUm Teste = Uma Razão pra Mudança

Feedback Rápido

FullCobrir o maior % possível do sistema

quinta-feira, 11 de julho de 2013

Page 43: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

quinta-feira, 11 de julho de 2013

Page 44: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

quinta-feira, 11 de julho de 2013

Page 45: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Código de teste é tão importante quanto código de produção

Testes bem escritos e em grupos pequenos no mesmo contexto

Toda a equipe deve escrever a suíte de testes

quinta-feira, 11 de julho de 2013

Page 46: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Consistente e Confiável

A sua suíte de testes deve conquistar a confiança da sua equipe, do seu gerente e do cliente

quinta-feira, 11 de julho de 2013

Page 47: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

“Isolada”

Um teste não pode influenciar o resultado de outro

Feedback Rápido

quinta-feira, 11 de julho de 2013

Page 48: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Duráveis

Mantém seu valor durante toda a vida do produto

quinta-feira, 11 de julho de 2013

Page 49: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Documentação

Testes servem como documentação (são a melhor documentação que

você vai ter)

Documentação viva, especificação executável.

Testes devem informar a intenção de um desenvolvedor

quinta-feira, 11 de julho de 2013

Page 50: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

quinta-feira, 11 de julho de 2013

Page 51: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Opção 1

Máquina gigante na Amazon, rodando Windows ou Linux com XVFB +

Mycontainer

Servidor dedicado no dev

Pros: Setup parecidoCons: $, dificil de debugar (aws)

quinta-feira, 11 de julho de 2013

Page 52: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Opção 1I

myContainer Grid

Pros: Desenvolvido para paralelismoCons: Dificil de adaptar para

paralelismo, dificil de adaptar meu projeto, projeto em construção

https://github.com/feroult/mycontainer-grid

quinta-feira, 11 de julho de 2013

Page 53: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Opção 1II

Selenium Grid

Pros: Fácil e estávelCons: Dificil paralelizar na mesma

máquina (ex. BD)

quinta-feira, 11 de julho de 2013

Page 54: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Opção IV

CloudBees + Sauce Labs

Pros: Cloud, ;)Cons: Código de produção em

servidor externo

@leguimas <- pode te ajudar

quinta-feira, 11 de julho de 2013

Page 55: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

quinta-feira, 11 de julho de 2013

Page 56: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Foque a cobertura nas funcionalidades que mudam com

maior frequência

Faça testes para os bugs em produção - você automaticamente

estará testando o mais crítico

quinta-feira, 11 de julho de 2013

Page 57: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Não deixe o teste para o final

Não rode a suíte somente antes de gerar a versão

Faça integração contínua

Não se preocupe com a performance de execução de um teste, mas sim, com o paralelismo e concorrência.

quinta-feira, 11 de julho de 2013

Page 58: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Mas o que é mais importante?

quinta-feira, 11 de julho de 2013

Page 59: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Possuir uma suíte de testes

quinta-feira, 11 de julho de 2013

Page 60: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

Saber se sua suíte está indo para o buraco

quinta-feira, 11 de julho de 2013

Page 61: Lições do futuro: o que eu queria saber há alguns anos sobre como manter uma suíte de testes

Globalcode  –  Open4education

@flsusp@ederign

quinta-feira, 11 de julho de 2013