SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
globo               Test Driven Development
           .com            Trabalhe tranquilo e maximize sua produtividade




Friday, December 9, 2011
Sobre Mim
   ‣   Flávio Ribeiro
         ‣   Graduado em Engenharia Elétrica pelo IFPB
         ‣   Engenheiro de Software na Globo.com

             @flavioribeiro




Friday, December 9, 2011
Sobre a Palestra
   ‣   Vamos falar de ...




Friday, December 9, 2011
Problemas Reais
Friday, December 9, 2011
Entregas Cíclicas
                                   continous delivery




Friday, December 9, 2011
Modelagem
                                 design


Friday, December 9, 2011
Profissionalismo?
Friday, December 9, 2011
Test Driven
    Development




Friday, December 9, 2011
Friday, December 9, 2011
Friday, December 9, 2011
Antes de Comecar...
   ‣   TDD não é ensinado, TDD é praticado!

   ‣   Na fase de treinamento é importante seguir as
       regras.

   ‣   Baby Steps.




Friday, December 9, 2011
Modelagem/Testedesign




Friday, December 9, 2011
Modelagem / Teste
   ‣   Seja cliente do código que irá escrever
         ‣   O que eu vou entregar e o que eu quero de volta?

   ‣   Escreva um teste com o design concebido




Friday, December 9, 2011
Escreva o código




Friday, December 9, 2011
Escreva o código
   ‣   Gaste um tempo pensando no seu problema, planeje
       até ter uma solução limpa e elegante.

   ‣   Mantenha o foco. O target é fazer o teste passar.

   ‣   Faça o teste passar.




Friday, December 9, 2011
Refatorar




Friday, December 9, 2011
Refatorar
   ‣   Use nomes que façam sentido.
   ‣   Aplique otimizações.
   ‣   Pair Programming
   ‣   Honre seu nome, o git blame pode te entregar.
   ‣   “Qualquer um escreve código que computadores
       entendem. Bons programadores escrevem código
       que humanos podem entender.” - Martin Fowler



Friday, December 9, 2011
Quando refatorar?
   ‣   Código duplicado

   ‣   Métodos longos

   ‣   Classes grandes (o famoso sacolão)

   ‣   Muitos parâmetros



Friday, December 9, 2011
Quando refatorar?
                                        .. do Zen of Python (Tim Peters)
   ‣   Beautiful is better than ugly.

   ‣   Simple is better than complex.

   ‣   Sparse is better than dense.

   ‣   Readability counts.



Friday, December 9, 2011
“Talk is cheap.. show me the code.”




Friday, December 9, 2011
Friday, December 9, 2011
Placar de Boliche
   ‣   10 “frames”, 2 arremessos cada
   ‣   10 pinos

   ‣   Strike: Se o primeiro arremesso derrubar os 10 pinos
         ‣   Os dois próximos arremessos serão “dobrados”

   ‣   Spare: Derrubar todos os pinos com os 2
       arremessos
         ‣   O próximo arremesso será “dobrado”
Friday, December 9, 2011
Legal! Mas... pra que serve mesmo?
Friday, December 9, 2011
O Problema
                                    Bom




                           Barato         Rápido


Friday, December 9, 2011
TDD ajuda a equalizar




Friday, December 9, 2011
TDD ajuda a equalizar
   ‣   Testar é mais barato que debugar.
         ‣   (Tempo = Dinheiro)
   ‣   Código é documentado pelos testes.
   ‣   Menos bugs em produção.
   ‣   Software mais consistente. Mude o que quiser com
       segurança. Trabalhe tranquilo.
   ‣   Entregas cíclicas.


Friday, December 9, 2011
Entregas Cíclicas
Friday, December 9, 2011
Entregas Cíclicas      continuous delivery
   ‣   Feedback imediado.

   ‣   Pequenas entregas.

   ‣   Alertas sobre build. (verde/vermelho)

   ‣   Alinhamento de expectativas.

   ‣   Manutenção do escopo.

Friday, December 9, 2011
Ops, quebraram o build!
Friday, December 9, 2011
Ainda temos tempo?
   ‣   Mocks, stubs e fakes

   ‣   Outros testes
         ‣   Teste de Intregração




Friday, December 9, 2011
Perguntas?



                           @flavioribeiro

Friday, December 9, 2011
Obrigado!       ;)
                           @flavioribeiro

Friday, December 9, 2011
Links
 http://programmers.stackexchange.com/questions/93302/spending-too-much-time-debugging
 http://www.slideshare.net/Skud/test-driven-development-tutorial
 http://www.ime.usp.br/~pf/algoritmos/aulas/footnotes/epigraphs.html
 http://tonygodoy.blog.com/files/2010/12/macaco-pensativo.jpg
 http://python.org
 http://www.slideshare.net/redigon/refactoring-1658371
 http://speakerdeck.com/u/tarsisazevedo/p/refactoring-comece-agora
 http://www.slideshare.net/osantana/tdd-com-python
 http://www.klauslaube.com.br/wp-content/uploads/2011/01/TestDrivenGameDevelopment.png
 http://speakerdeck.com/u/tarsisazevedo/p/refactoring-comece-agora
 http://www.flickr.com/photos/kalavinka/4617897952/sizes/o/in/photostream/
 http://disciplinas.dcc.ufba.br/pub/MATB14/TDDComRuby/tdd-cycle.jpg
 http://designcipta.com/wp-content/uploads/2011/02/architect_2.jpg
 http://cdn02.cdnwp.celebuzz.com/wp-content/uploads/legacy/celebuzz/default/msg-127981724976-3.jpg
 http://markmail.org/message/jmvo3hedwp3zrcoo
 http://se.inf.ethz.ch/old/teaching/2010-S/0276/slides/pletikosa.pdf
 http://www.agile-itea.org/public/deliverables/ITEA-AGILE-D2.7_v1.0.pdf
 http://stackoverflow.com/questions/787172/what-is-a-good-sample-class-to-demonstrate-tdd
 http://www.objectmentor.com/resources/articles/xpepisode.htm
 http://galeri.uludagsozluk.com/49/linus-torvalds_64902.jpg
 http://3.bp.blogspot.com/_Hep8dtfRKAg/TNgEf6kvmzI/AAAAAAAAABk/BTo3MqMFl1U/s1600/
 bowling.jpg
 http://pt.wikipedia.org/wiki/Boliche

Friday, December 9, 2011

Más contenido relacionado

Similar a Test Driven Development - Trabalhe tranquilo e maximize sua produtividade

TDC 2011 - E no sétimo dia ele escreveu testes
TDC 2011 - E no sétimo dia ele escreveu testesTDC 2011 - E no sétimo dia ele escreveu testes
TDC 2011 - E no sétimo dia ele escreveu testesRafael Dohms
 
Abrace as incertezas - a ilusão do controle
Abrace as incertezas - a ilusão do controleAbrace as incertezas - a ilusão do controle
Abrace as incertezas - a ilusão do controleIgor Macaubas
 
Testar é bom, integrar é ainda melhor
Testar é bom, integrar é ainda melhorTestar é bom, integrar é ainda melhor
Testar é bom, integrar é ainda melhorAugusto Pascutti
 
10 dicas de carreira em PHP
10 dicas de carreira em PHP10 dicas de carreira em PHP
10 dicas de carreira em PHPElton Minetto
 
Designer ♥ Developer
Designer ♥ DeveloperDesigner ♥ Developer
Designer ♥ DeveloperClaus Wahlers
 
Apresentacao IPv6Forum realizado pelo Nic.BR - II Semana da Infraestrutura da...
Apresentacao IPv6Forum realizado pelo Nic.BR - II Semana da Infraestrutura da...Apresentacao IPv6Forum realizado pelo Nic.BR - II Semana da Infraestrutura da...
Apresentacao IPv6Forum realizado pelo Nic.BR - II Semana da Infraestrutura da...Marcus Vinicius Cesário
 
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentCriando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentDaniel Wildt
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreamsJacqueline Abreu
 
TDC2016POA | Trilha Infraestrutura - Infra Ágil: Por onde começar?
TDC2016POA |  Trilha Infraestrutura -  Infra Ágil: Por onde começar?TDC2016POA |  Trilha Infraestrutura -  Infra Ágil: Por onde começar?
TDC2016POA | Trilha Infraestrutura - Infra Ágil: Por onde começar?tdc-globalcode
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Djangofabiocerqueira
 
TDD com LEGO #PHPExperience2016
TDD com LEGO #PHPExperience2016TDD com LEGO #PHPExperience2016
TDD com LEGO #PHPExperience2016Simone Pittner
 
PHP Experience 2016 - [Workshop] Agile: Test Driven Development
PHP Experience 2016 - [Workshop] Agile: Test Driven DevelopmentPHP Experience 2016 - [Workshop] Agile: Test Driven Development
PHP Experience 2016 - [Workshop] Agile: Test Driven DevelopmentiMasters
 
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)FMDS_Oficial
 
Tech lunch Pair Programming
Tech lunch Pair ProgrammingTech lunch Pair Programming
Tech lunch Pair ProgrammingInformantTalks
 
Como se tornar um desenvolvedor de software melhor
Como se tornar um desenvolvedor de software melhorComo se tornar um desenvolvedor de software melhor
Como se tornar um desenvolvedor de software melhorLeonardo Zanivan
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
DevOps - Por onde começar
DevOps - Por onde começarDevOps - Por onde começar
DevOps - Por onde começarFernando Ike
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - IntroduçãoHélio Costa e Silva
 

Similar a Test Driven Development - Trabalhe tranquilo e maximize sua produtividade (20)

TDC 2011 - E no sétimo dia ele escreveu testes
TDC 2011 - E no sétimo dia ele escreveu testesTDC 2011 - E no sétimo dia ele escreveu testes
TDC 2011 - E no sétimo dia ele escreveu testes
 
Abrace as incertezas - a ilusão do controle
Abrace as incertezas - a ilusão do controleAbrace as incertezas - a ilusão do controle
Abrace as incertezas - a ilusão do controle
 
Testar é bom, integrar é ainda melhor
Testar é bom, integrar é ainda melhorTestar é bom, integrar é ainda melhor
Testar é bom, integrar é ainda melhor
 
10 dicas de carreira em PHP
10 dicas de carreira em PHP10 dicas de carreira em PHP
10 dicas de carreira em PHP
 
Designer ♥ Developer
Designer ♥ DeveloperDesigner ♥ Developer
Designer ♥ Developer
 
Modelo ágil
Modelo ágilModelo ágil
Modelo ágil
 
Apresentacao IPv6Forum realizado pelo Nic.BR - II Semana da Infraestrutura da...
Apresentacao IPv6Forum realizado pelo Nic.BR - II Semana da Infraestrutura da...Apresentacao IPv6Forum realizado pelo Nic.BR - II Semana da Infraestrutura da...
Apresentacao IPv6Forum realizado pelo Nic.BR - II Semana da Infraestrutura da...
 
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentCriando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 
TDC2016POA | Trilha Infraestrutura - Infra Ágil: Por onde começar?
TDC2016POA |  Trilha Infraestrutura -  Infra Ágil: Por onde começar?TDC2016POA |  Trilha Infraestrutura -  Infra Ágil: Por onde começar?
TDC2016POA | Trilha Infraestrutura - Infra Ágil: Por onde começar?
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Django
 
TDD com LEGO #PHPExperience2016
TDD com LEGO #PHPExperience2016TDD com LEGO #PHPExperience2016
TDD com LEGO #PHPExperience2016
 
PHP Experience 2016 - [Workshop] Agile: Test Driven Development
PHP Experience 2016 - [Workshop] Agile: Test Driven DevelopmentPHP Experience 2016 - [Workshop] Agile: Test Driven Development
PHP Experience 2016 - [Workshop] Agile: Test Driven Development
 
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
APLICATIVOS: Por que ainda não criou o seu? (FMDS 2011)
 
Tech lunch Pair Programming
Tech lunch Pair ProgrammingTech lunch Pair Programming
Tech lunch Pair Programming
 
Time ágil ... será ?
Time ágil ... será ?Time ágil ... será ?
Time ágil ... será ?
 
Como se tornar um desenvolvedor de software melhor
Como se tornar um desenvolvedor de software melhorComo se tornar um desenvolvedor de software melhor
Como se tornar um desenvolvedor de software melhor
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
DevOps - Por onde começar
DevOps - Por onde começarDevOps - Por onde começar
DevOps - Por onde começar
 
Test-Driven Development - Introdução
Test-Driven Development - IntroduçãoTest-Driven Development - Introdução
Test-Driven Development - Introdução
 

Más de Flávio Ribeiro

Snickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingSnickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingFlávio Ribeiro
 
Building a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesBuilding a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesFlávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerBemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerFlávio Ribeiro
 
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxDesenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxFlávio Ribeiro
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
Linux em Sistemas Embarcados
Linux em Sistemas EmbarcadosLinux em Sistemas Embarcados
Linux em Sistemas EmbarcadosFlávio Ribeiro
 

Más de Flávio Ribeiro (9)

Snickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media EncodingSnickers: Open Source HTTP API for Media Encoding
Snickers: Open Source HTTP API for Media Encoding
 
Building a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York TimesBuilding a Video Encoding Pipeline at The New York Times
Building a Video Encoding Pipeline at The New York Times
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Implementação de Aplicações Móveis e Jogos com Python - Aula 2
Implementação de Aplicações Móveis e Jogos com Python - Aula 2
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-PeerBemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
BemTV: Modelo Híbrido para Transmissão de Vídeos ao Vivo utilizando Peer-to-Peer
 
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e LinuxDesenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
Desenvolvimento Mobile & Embedded com Arduino, Python, ARM e Linux
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Linux em Sistemas Embarcados
Linux em Sistemas EmbarcadosLinux em Sistemas Embarcados
Linux em Sistemas Embarcados
 

Test Driven Development - Trabalhe tranquilo e maximize sua produtividade

  • 1. globo Test Driven Development .com Trabalhe tranquilo e maximize sua produtividade Friday, December 9, 2011
  • 2. Sobre Mim ‣ Flávio Ribeiro ‣ Graduado em Engenharia Elétrica pelo IFPB ‣ Engenheiro de Software na Globo.com @flavioribeiro Friday, December 9, 2011
  • 3. Sobre a Palestra ‣ Vamos falar de ... Friday, December 9, 2011
  • 5. Entregas Cíclicas continous delivery Friday, December 9, 2011
  • 6. Modelagem design Friday, December 9, 2011
  • 8. Test Driven Development Friday, December 9, 2011
  • 11. Antes de Comecar... ‣ TDD não é ensinado, TDD é praticado! ‣ Na fase de treinamento é importante seguir as regras. ‣ Baby Steps. Friday, December 9, 2011
  • 13. Modelagem / Teste ‣ Seja cliente do código que irá escrever ‣ O que eu vou entregar e o que eu quero de volta? ‣ Escreva um teste com o design concebido Friday, December 9, 2011
  • 14. Escreva o código Friday, December 9, 2011
  • 15. Escreva o código ‣ Gaste um tempo pensando no seu problema, planeje até ter uma solução limpa e elegante. ‣ Mantenha o foco. O target é fazer o teste passar. ‣ Faça o teste passar. Friday, December 9, 2011
  • 17. Refatorar ‣ Use nomes que façam sentido. ‣ Aplique otimizações. ‣ Pair Programming ‣ Honre seu nome, o git blame pode te entregar. ‣ “Qualquer um escreve código que computadores entendem. Bons programadores escrevem código que humanos podem entender.” - Martin Fowler Friday, December 9, 2011
  • 18. Quando refatorar? ‣ Código duplicado ‣ Métodos longos ‣ Classes grandes (o famoso sacolão) ‣ Muitos parâmetros Friday, December 9, 2011
  • 19. Quando refatorar? .. do Zen of Python (Tim Peters) ‣ Beautiful is better than ugly. ‣ Simple is better than complex. ‣ Sparse is better than dense. ‣ Readability counts. Friday, December 9, 2011
  • 20. “Talk is cheap.. show me the code.” Friday, December 9, 2011
  • 22. Placar de Boliche ‣ 10 “frames”, 2 arremessos cada ‣ 10 pinos ‣ Strike: Se o primeiro arremesso derrubar os 10 pinos ‣ Os dois próximos arremessos serão “dobrados” ‣ Spare: Derrubar todos os pinos com os 2 arremessos ‣ O próximo arremesso será “dobrado” Friday, December 9, 2011
  • 23. Legal! Mas... pra que serve mesmo? Friday, December 9, 2011
  • 24. O Problema Bom Barato Rápido Friday, December 9, 2011
  • 25. TDD ajuda a equalizar Friday, December 9, 2011
  • 26. TDD ajuda a equalizar ‣ Testar é mais barato que debugar. ‣ (Tempo = Dinheiro) ‣ Código é documentado pelos testes. ‣ Menos bugs em produção. ‣ Software mais consistente. Mude o que quiser com segurança. Trabalhe tranquilo. ‣ Entregas cíclicas. Friday, December 9, 2011
  • 28. Entregas Cíclicas continuous delivery ‣ Feedback imediado. ‣ Pequenas entregas. ‣ Alertas sobre build. (verde/vermelho) ‣ Alinhamento de expectativas. ‣ Manutenção do escopo. Friday, December 9, 2011
  • 29. Ops, quebraram o build! Friday, December 9, 2011
  • 30. Ainda temos tempo? ‣ Mocks, stubs e fakes ‣ Outros testes ‣ Teste de Intregração Friday, December 9, 2011
  • 31. Perguntas? @flavioribeiro Friday, December 9, 2011
  • 32. Obrigado! ;) @flavioribeiro Friday, December 9, 2011
  • 33. Links http://programmers.stackexchange.com/questions/93302/spending-too-much-time-debugging http://www.slideshare.net/Skud/test-driven-development-tutorial http://www.ime.usp.br/~pf/algoritmos/aulas/footnotes/epigraphs.html http://tonygodoy.blog.com/files/2010/12/macaco-pensativo.jpg http://python.org http://www.slideshare.net/redigon/refactoring-1658371 http://speakerdeck.com/u/tarsisazevedo/p/refactoring-comece-agora http://www.slideshare.net/osantana/tdd-com-python http://www.klauslaube.com.br/wp-content/uploads/2011/01/TestDrivenGameDevelopment.png http://speakerdeck.com/u/tarsisazevedo/p/refactoring-comece-agora http://www.flickr.com/photos/kalavinka/4617897952/sizes/o/in/photostream/ http://disciplinas.dcc.ufba.br/pub/MATB14/TDDComRuby/tdd-cycle.jpg http://designcipta.com/wp-content/uploads/2011/02/architect_2.jpg http://cdn02.cdnwp.celebuzz.com/wp-content/uploads/legacy/celebuzz/default/msg-127981724976-3.jpg http://markmail.org/message/jmvo3hedwp3zrcoo http://se.inf.ethz.ch/old/teaching/2010-S/0276/slides/pletikosa.pdf http://www.agile-itea.org/public/deliverables/ITEA-AGILE-D2.7_v1.0.pdf http://stackoverflow.com/questions/787172/what-is-a-good-sample-class-to-demonstrate-tdd http://www.objectmentor.com/resources/articles/xpepisode.htm http://galeri.uludagsozluk.com/49/linus-torvalds_64902.jpg http://3.bp.blogspot.com/_Hep8dtfRKAg/TNgEf6kvmzI/AAAAAAAAABk/BTo3MqMFl1U/s1600/ bowling.jpg http://pt.wikipedia.org/wiki/Boliche Friday, December 9, 2011