Desenvolvedor no controle utilizando tdd

1.079 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.079
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

×