TDD do seu jeito

1,336 views

Published on

Palestra apresentada em 02/07/2011 no FISL12.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,336
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

TDD do seu jeito

  1. 1. TDD do seu jeitoIsrael Teixeira @israelst mudadeideia.com.brRodolfo Carvalho @201 rodolfocarvalho.net
  2. 2. http://dojorio.org
  3. 3. Sobre o que vamos falar hoje TDD = Test-Driven Development =Desenvolvimento Guiado por Testes
  4. 4. Preparando uma palestra sobre TDD
  5. 5. O que é TDD• Técnica e boa prática de desenvolvimento de software Fluxo de desenvolvimento tradicional Design Code Test
  6. 6. O que é TDD • Técnica e boa prática de desenvolvimento de software Com TDD Design Test Test CodeRefactor
  7. 7. O que é TDD• Técnica e boa prática de desenvolvimento de software Design Code Test x Design Test Design Test Design Test Test Code Test Code Test Code ...Refactor Refactor Refactortempo
  8. 8. Exemplo: Caixa Eletrônico1. Escrever um teste class CashMachineTests(unittest.TestCase): def test_draw_10_bucks(self): machine = CashMachine() self.assertEqual(machine.draw(10), [10])
  9. 9. Exemplo: Caixa Eletrônico 2. Executar os testes e ver o novo teste falhar (vermelho)E======================================================================ERROR: test_draw_10_bucks (__main__.CashMachineTests)----------------------------------------------------------------------Traceback (most recent call last): File "./cash_machine.py", line 6, in test_draw_10_bucks machine = CashMachine()NameError: global name CashMachine is not defined
  10. 10. Exemplo: Caixa Eletrônico3. Implementar código suficiente para passar nos testes class CashMachine: def draw(self, amount): return [amount]
  11. 11. Exemplo: Caixa Eletrônico 4. Executar os testes e ver todos passarem (verde).----------------------------------------------------------------------Ran 1 test in 0.000sOK
  12. 12. Exemplo: Caixa Eletrônico5. Refatorarclass CashMachine: class CashMachine: def draw(self, amount): def draw(self, amount): return [amount] bills = [amount] return bills
  13. 13. Exemplo: Caixa Eletrônico 6. Executar os testes e garantir que todos continuam passando.----------------------------------------------------------------------Ran 1 test in 0.000sOK
  14. 14. TDD é uma das formas de desenvolver software TDD != 42
  15. 15. Guiando o processo http://www.flickr.com/photos/fallenidol/1234034423
  16. 16. Intenção, avaliação, e feedback“No término de um trabalho, a avaliação égeralmente considerada uma operação óbvia, vistapor qualquer ser sensato como legítima edesejável.” Christophe Dejours
  17. 17. Por que TDD como metologia?• TDD faz com que você reflita sobre o processo.• 40% a 90% menos erros. Nagappan, Maximilien, Bhat e Williams. 2008. http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf
  18. 18. TDD• Ajuda a: Programar por intenção Evitar a "síndrome da tela em branco"
  19. 19. TDD 101010 010101
  20. 20. TDD• Ajuda a: Programar por intenção Evitar a "síndrome da tela em branco" Reduzir a quantidade de bugs Documentar o código Rede de segurança contra regressões ...
  21. 21. O excesso de design préviohttps://picasaweb.google.com/rhcarvalho/Dojo25NaLapa http://bit.ly/kKEKAc
  22. 22. Conclusões• TDD não se aplica em todos os contextos• Use TDD com sabedoria para guiar o desenvolvimento• Faça design iterativo• Não faça design prévio em excesso
  23. 23. ?Perguntas
  24. 24. Avisos Coding Dojo• Quando: hoje, a partir de 15:00• Onde: stand da globo.com• No Rio de Janeiro: http://dojorio.org/onde

×