Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Desenvolvedor no controle utilizando tdd

1,121 views

Published on

  • Be the first to comment

  • Be the first to like this

Desenvolvedor no controle utilizando tdd

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

×