Your SlideShare is downloading. ×
Desenvolvedor no controle utilizando tdd
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desenvolvedor no controle utilizando tdd

854

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
854
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desenvolvedor no controle utilizando TDD Victor Villela Serta victorserta@gmail.com twitter.com/victorserta victorserta.com.br 1#soudevcon #tdd
  • 2. Quem sou eu?Victor Serta● Desenvolvedor Java● Fundador da Agivis, uma startup de desenvolvimento ágil de aplicações web e mobile● Graduado em Engenharia de Computação pela PUC-PR● Entusiasta de metodologias ágeis (Scrum, XP e Kanban)
  • 3. twitter.com/victorserta
  • 4. victorserta.com.br
  • 5. Test Driven Development#soudevcon #tdd
  • 6. Mas antes... uma história#soudevcon #tdd
  • 7. ● Desenvolvedor bem intensionado● Sem testes automatizados● XGH#soudevcon #tdd
  • 8. Após 3 semanas estavapronto...#soudevcon #tdd
  • 9. ...só faltava testar.#soudevcon #tdd
  • 10. 3 dias antes da entrega um bug foi encontrado#soudevcon #tdd
  • 11. Depois de muita pizza e noites viradas....#soudevcon #tdd
  • 12. Ele arrumou o bug e o projeto foi entregue!#soudevcon #tdd
  • 13. Quando o cliente foi testar...#soudevcon #tdd
  • 14. Arrumou o bug,mas causou outros 5#soudevcon #tdd
  • 15. Outra história...#soudevcon #tdd
  • 16. ● Desenvolvedor experiente● Domina Design Patterns#soudevcon #tdd
  • 17. Diagrama de um “Hello World” desse desenvolvedor:#soudevcon #tdd
  • 18. Levou 2 meses levantandorequisitos...#soudevcon #tdd
  • 19. 1 mês defnindo aarquitetura...#soudevcon #tdd
  • 20. 2 meses elaborandodiagramas...#soudevcon #tdd
  • 21. 4 meses desenvolvendo...#soudevcon #tdd
  • 22. 2 meses testando.#soudevcon #tdd
  • 23. Quando o cliente foi testar...#soudevcon #tdd
  • 24. “Não era isso que euqueria...”
  • 25. Dinheiro jogado fora!#soudevcon #tdd
  • 26. A solução: Lean Agile Scrum XP#soudevcon #tdd
  • 27. #soudevcon #tdd
  • 28. Desenvolvimento padrão Projetar Codificar Testar#soudevcon #tdd
  • 29. Test Driven Development Testar Codificar Projetar#soudevcon #tdd
  • 30. Por que TDD? Qualidade#soudevcon #tdd
  • 31. Por que TDD? Menos desperdício#soudevcon #tdd
  • 32. Por que TDD? Mais rápido#soudevcon #tdd
  • 33. Ferramentas – Java ● JUnit ● TestNG ● Mockito ● EasyMock ● DbUnit ● Fit / FitNesse#soudevcon #tdd
  • 34. Ferramentas – Ruby ● Test::Unit ● Mocha ● RSpec ● Shoulda#soudevcon #tdd
  • 35. Ferramentas – PHP ● SimpleTest ● PHPUnit#soudevcon #tdd
  • 36. Ferramentas – Action Script ● FlexUnit ● Mockolate#soudevcon #tdd
  • 37. Ferramentas – JavaScript ● JsUnit ● DOH ● FireUnit ● QUnit ● JSMock ● QMock ● MockMe#soudevcon #tdd
  • 38. Ferramentas – .NET ● NUnit ● csUnit ● DotNetMock#soudevcon #tdd
  • 39. Conceito base Red#soudevcon #tdd
  • 40. Conceito base Red Green#soudevcon #tdd
  • 41. Conceito base Red Green Refactor#soudevcon #tdd
  • 42. “Talk is cheap. Show me the code.” (Linus Torvalds)#soudevcon #tdd
  • 43. O Exemplo Controle de Estoque#soudevcon #tdd
  • 44. Requisitos ● Controle de entrada/saída de produtos atualizando quantidade atual ● Não permitir saldo negativo ● Notifcar setor de compras quando o saldo do produto fcar zerado após uma saída#soudevcon #tdd
  • 45. Programação por Intenção● Assumir que a implementação existe● Design livre#soudevcon #tdd
  • 46. Baby Steps ● Passos pequenos ● Desenvolvimento incremental ● Feedback#soudevcon #tdd
  • 47. Estamos na barra vermelha
  • 48. Busque a barra verde o quantoantes
  • 49. Refatore!
  • 50. Triangulação Teste 1 Teste 2 Teste 3 Espaço da solução#soudevcon #tdd
  • 51. Limpar testes repetidos#soudevcon #tdd
  • 52. Requisitos ● Controle de entrada/saída de produtos atualizando quantidade atual ● Não permitir saldo negativo ● Notifcar setor de compras quando o saldo do produto fcar zerado após uma saída#soudevcon #tdd
  • 53. Requisitos ● Controle de entrada/saída de produtos atualizando quantidade atual ● Não permitir saldo negativo ● Notifcar setor de compras quando o saldo do produto fcar zerado após uma saída#soudevcon #tdd
  • 54. Mock objects ● Ensaiar ● Repetir ● Verifcar#soudevcon #tdd
  • 55. Stub/Fake objects● Stub ● Implementação hardcoded ● Apenas parece como um pato● Fake ● Parece com um pato, anda como um pato, mas não é um pato real#soudevcon #tdd
  • 56. Requisitos ● Controle de entrada/saída de produtos atualizando quantidade atual ● Não permitir saldo negativo ● Notifcar setor de compras quando o saldo do produto fcar zerado após uma saída#soudevcon #tdd
  • 57. Além do TDD...● ATDD – Acceptance TDD● BDD – Behavior Driven Development#soudevcon #tdd
  • 58. Resumindo TDD...#soudevcon #tdd
  • 59. Crie e execute o teste Red
  • 60. Codifique para passar no testeRed Green
  • 61. Refatore!Red Green Refactor
  • 62. Pronto para assumir o controle ?
  • 63. Referências Test-Driven Development By Example Test Driven: Practical TDD and Acceptance TDD for Java Developers Kent Beck Lasse Koskela
  • 64. Obrigado!Twitter: @victorsertaBlog: victorserta.com.br/blogEmail: victorserta@gmail.com#soudevcon #tdd

×