SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
R a m o n G o n ç a l v e s
TDD & CI
Teste ajuda? Design orientado a testes?
Integração Contínua? O que é isso?
A - NOT SO - LONG TIME AGO…
!2
COMO ASSIM TESTE?
!3
AUTOMATIZA!
POR QUE EU PRECISO DISSO?
!4
FEEDBACKS, MA FRIEND, FEEDBACKS =D
!5
!6
!7
QUEM ESCREVE ESSE TREM?
!8
!9
PERA; SEM SEPARAÇÃO DE TIME?
!10
!11
HMM, MAS QUANDO ESCREVER ESSES
TESTES?
!12
ANTES OU DEPOIS?
NENHUM DOS DOIS!
YEEEH YEEEH!
!13
CICLO MALDITO DA FRUSTRAÇÃO GARANTIDA
!14
CICLO LINDO DA RECOMPENSA IMEDIATA
!15
E SE EU QUISER TESTAR
DEPOIS?
uai…
!16
SÓ QUE TDD NÃO É SOBRE
TESTES
ish…
!17
TDD É SOBRE DESIGN!
eita jeovana!
!18
!19
COMO ASSIM, RAMON?
e esse ‘teste' aí?
!20
TEST-DRIVEN DEVELOPMENT
“CLEAN CODE THAT WORKS"
código limpo que funciona!
!21
UP-FRONT DESIGN (TRADICIONAL)
!22
TEST DRIVEN DEVELOPMENT / TEST DRIVEN DESIGN
!23
COMO?
!
!
1 - Adicione um teste
2 - Rode os testes
3 - Mude algo pequeno
4 - Rode tudo outra vez (agora tudo deve ser sucesso)
5 - Refatore
!24
VERMELHO - VERDE - REFATORAÇÃO
!25
!26
ISOLAMENTO!
estamos falando de Testes Unitários
!27
TESTES DEVEM ENSINAR
tem que dizer algo
!28
SEU TESTE DEVE DIZER ALGO
“public void testaValidacao()” - NOPE!
!
!
!
!
!
“public void deveRetornarUmErroXSeAEntradaForEssaEquisitaAqui()” - isso é
algo feliz e que te diz um comportamento relevante =D
!29
TESTAMOS
COMPORTAMENTOS
“o que” é mais importante do que "como"
!30
EMERGENT DESIGN
ASSIM NOSSO DESIGN EMERGE!
E AÍ, O QUE CONSEGUIMOS
COM ISSO TUDO?
!32
APRENDEMOS COM O
CÓDIGO
não implementamos só o que veio na cabeça de primeira…
!33
QUALIDADE, QUALIDADE,
QUALIDADE!
todo mundo mais feliz…
!34
CONFIANÇA!
!35
medo pra quê se eu tenho meus testes!?
HMM, MAS ESSA TALK NÃO
ERA SÓ SOBRE TDD, NÉ?
!36
c l i e n t e b r a v o !
INTEGRAÇÃO CONTÍNUA
o tal do CI (continuous integration)
MAIS UMA TÉCNICA CHATA?
integrar que é chato, não?
!38
VAMOS INTEGRAR TUDO
DIARIAMENTE!
toda hora é dia de manter todo mundo no mesmo barco!
!39
NÃO É SÓ MAIS UMA
PRÁTICA!
tem princípios nisso!
!40
PRÁTICAS
- um único repositório com tudo que tem que existir;
- build automático;
- tudo auto-testável;
- todo commit roda todos os testes automatizados;
- o build deveria estar o mais rápido possível;
- todo mundo sabe o que está acontecendo;
- deploy automático
!41
QUE DIABOS É UM BUILD?
!42
!43
Integração Contínua
SNAP CI
!44
SE NÃO TEM TESTE, NÃO É CI.
o resto é blá-blá-blá
!45
E AGORA AGORA A COISA FICOU SÉRIA
!46
ALGUMAS COISINHAS A MAIS…
- todo mundo cuida do build, isso é responsabilidade do time;
!
- build quebrado não vai pra produção;
!
- muito menos recebe novo commit;
!
- se está quebrado, fix it!;
!
- ninguém faz push de código sem teste (e que deve ser testado);
!
- olha esse trem o tempo todo! (coloca isso numa TV onde todo mundo vê, manda e-mail, integra com o
chat do time. Ninguém deve ficar afastado do build =D)
!47
!48
NÃO DEIXE ISSO ACONTECER…
!49
Perguntas?
OBRIGADO!

Mais conteúdo relacionado

Mais procurados

Agil das trincheiras
Agil das trincheirasAgil das trincheiras
Agil das trincheirasFelipe Zampa
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Better Developer
 
Desenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certoDesenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certoMarcos Petry
 
Arquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudarArquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudarBetter Developer
 
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...Joao Galdino Mello de Souza
 
Wire 2010 - Entenda Software da Forma Correta
Wire 2010 - Entenda Software da Forma CorretaWire 2010 - Entenda Software da Forma Correta
Wire 2010 - Entenda Software da Forma CorretaFabio Akita
 

Mais procurados (10)

Agil das trincheiras
Agil das trincheirasAgil das trincheiras
Agil das trincheiras
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)
 
Qualidade no desenvolvimento de sistemas
Qualidade no desenvolvimento de sistemasQualidade no desenvolvimento de sistemas
Qualidade no desenvolvimento de sistemas
 
Desenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certoDesenvolvimento ágil do jeito certo
Desenvolvimento ágil do jeito certo
 
Clean Code
Clean CodeClean Code
Clean Code
 
Codelab Git
Codelab GitCodelab Git
Codelab Git
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Arquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudarArquitetura em camadas em python e quanto isso pode ajudar
Arquitetura em camadas em python e quanto isso pode ajudar
 
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
Software Optimization and Tuning Techniques for z13 (As mentiras do ontem, um...
 
Wire 2010 - Entenda Software da Forma Correta
Wire 2010 - Entenda Software da Forma CorretaWire 2010 - Entenda Software da Forma Correta
Wire 2010 - Entenda Software da Forma Correta
 

Destaque

Comparativo entre Agile e Lean
Comparativo entre Agile e LeanComparativo entre Agile e Lean
Comparativo entre Agile e LeanEduardo Delai
 
Lean startup - Maratona de Negócios - Campus Party Brasil
Lean startup  - Maratona de Negócios - Campus Party BrasilLean startup  - Maratona de Negócios - Campus Party Brasil
Lean startup - Maratona de Negócios - Campus Party BrasilGenésio Gomes Cruz Neto
 
A Regra #1 de Internet Marketing Usada por TODOS os Maiores Gurus da Atualida...
A Regra #1 de Internet Marketing Usada por TODOS os Maiores Gurus da Atualida...A Regra #1 de Internet Marketing Usada por TODOS os Maiores Gurus da Atualida...
A Regra #1 de Internet Marketing Usada por TODOS os Maiores Gurus da Atualida...Serge Rehem
 
MVP Canvas: Protótipos Organizados, Negócios Acelerados
MVP Canvas: Protótipos Organizados, Negócios AceleradosMVP Canvas: Protótipos Organizados, Negócios Acelerados
MVP Canvas: Protótipos Organizados, Negócios AceleradosSerge Rehem
 
Resumo Eureca! - The Lean Startup
Resumo Eureca! - The Lean StartupResumo Eureca! - The Lean Startup
Resumo Eureca! - The Lean StartupEureca!
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 

Destaque (8)

Comparativo entre Agile e Lean
Comparativo entre Agile e LeanComparativo entre Agile e Lean
Comparativo entre Agile e Lean
 
Lean startup - Maratona de Negócios - Campus Party Brasil
Lean startup  - Maratona de Negócios - Campus Party BrasilLean startup  - Maratona de Negócios - Campus Party Brasil
Lean startup - Maratona de Negócios - Campus Party Brasil
 
Trab licoes rio_grande
Trab licoes rio_grandeTrab licoes rio_grande
Trab licoes rio_grande
 
Ágil na Prática
Ágil na PráticaÁgil na Prática
Ágil na Prática
 
A Regra #1 de Internet Marketing Usada por TODOS os Maiores Gurus da Atualida...
A Regra #1 de Internet Marketing Usada por TODOS os Maiores Gurus da Atualida...A Regra #1 de Internet Marketing Usada por TODOS os Maiores Gurus da Atualida...
A Regra #1 de Internet Marketing Usada por TODOS os Maiores Gurus da Atualida...
 
MVP Canvas: Protótipos Organizados, Negócios Acelerados
MVP Canvas: Protótipos Organizados, Negócios AceleradosMVP Canvas: Protótipos Organizados, Negócios Acelerados
MVP Canvas: Protótipos Organizados, Negócios Acelerados
 
Resumo Eureca! - The Lean Startup
Resumo Eureca! - The Lean StartupResumo Eureca! - The Lean Startup
Resumo Eureca! - The Lean Startup
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

TDD, CI e Design Orientado a Testes