Slides

TDD do seu jeito

Description
1. TDD do seu jeitoIsrael Teixeira @israelst mudadeideia.com.brRodolfo Carvalho @201 rodolfocarvalho.net 2. http://dojorio.org 3. Sobre o que vamos falar hoje TDD =…
Categories
Published
of 24
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
  • 1. TDD do seu jeitoIsrael Teixeira @israelst mudadeideia.com.brRodolfo Carvalho @201 rodolfocarvalho.net
  • 2. http://dojorio.org
  • 3. Sobre o que vamos falar hoje TDD = Test-Driven Development =Desenvolvimento Guiado por Testes
  • 4. Preparando uma palestra sobre TDD
  • 5. O que é TDD• Técnica e boa prática de desenvolvimento de software Fluxo de desenvolvimento tradicional Design Code Test
  • 6. O que é TDD • Técnica e boa prática de desenvolvimento de software Com TDD Design Test Test CodeRefactor
  • 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. 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. 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. Exemplo: Caixa Eletrônico3. Implementar código suficiente para passar nos testes class CashMachine: def draw(self, amount): return [amount]
  • 11. Exemplo: Caixa Eletrônico 4. Executar os testes e ver todos passarem (verde).----------------------------------------------------------------------Ran 1 test in 0.000sOK
  • 12. Exemplo: Caixa Eletrônico5. Refatorarclass CashMachine: class CashMachine: def draw(self, amount): def draw(self, amount): return [amount] bills = [amount] return bills
  • 13. Exemplo: Caixa Eletrônico 6. Executar os testes e garantir que todos continuam passando.----------------------------------------------------------------------Ran 1 test in 0.000sOK
  • 14. TDD é uma das formas de desenvolver software TDD != 42
  • 15. Guiando o processo http://www.flickr.com/photos/fallenidol/1234034423
  • 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. 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. TDD• Ajuda a: Programar por intenção Evitar a "síndrome da tela em branco"
  • 19. TDD 101010 010101
  • 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. O excesso de design préviohttps://picasaweb.google.com/rhcarvalho/Dojo25NaLapa http://bit.ly/kKEKAc
  • 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. ?Perguntas
  • 24. Avisos Coding Dojo• Quando: hoje, a partir de 15:00• Onde: stand da globo.com• No Rio de Janeiro: http://dojorio.org/onde
  • We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks