introdução ao tdd (test-driven development) - #guma10anos

Download Introdução ao TDD (Test-Driven Development) - #guma10anos

Post on 06-May-2015

416 views

Category:

Software

1 download

Embed Size (px)

DESCRIPTION

Introdução ao TDD (Test-Driven Development) palestrado no #guma10anos. Fazendo uma relação com o TFD (Test First Development) e Refatoração, xUnit, Baby Steps, Clean Code, Patters para TDD, Agile Testing e ATDD (Acceptance Test-Driven Development). Ao final os Coding Dojos já realizados pelo RSJUG. Ao final um Prepared Kata demonstrando o TDD na prática.

TRANSCRIPT

  • 1.Introduo ao TDD Dionatan Moura about.me/dionatanmoura #guma10anos Abril de 2014

2. Introduo ao TDD Extreme Programming TDD Refatorao xUnit Baby Steps Clean Code Patterns para TDD Red Bar Test Green Bar Design Patterns Agile Testing ATDD Dojos 3. http://commons.wikimedia.org/wiki/File:Creador_de_la_metodologia_xp.jpg Test-Driven Development (TDD) uma tcnica para contruo de software que guia o desenvolvimento de software atravs da escrita de testes. Kent Beck 4. https://5com1001-0912.wikispaces.com/ 5. http://alisina.org/blog/2013/10/31/taqiyah-is-onion-shaped/ EstratgiaEstratgia PortflioPortflio ProdutoProduto ReleaseRelease IteraoIterao DiriaDiria TDDTDD 6. Regras I. Escrever novo cdigo somente se j existir um teste automatizado falhando II. Eliminar duplicao 7. Escreva um teste para o prximo pedao da funcionalidade. 3 Passos http://www.pro-tools-expert.com 8. Escreva um teste para o prximo pedao da funcionalidade. 3 Passos Escreva cdigo funcional at o teste passar. Refatore o cdigo novo (e antigo) at ficar bem estruturado. http://www.pro-tools-expert.com 9. Escreva um teste para o prximo pedao da funcionalidade. 3 Passos Escreva cdigo funcional at o teste passar. Refatore o cdigo novo (e antigo) at ficar bem estruturado. http://www.pro-tools-expert.com 10. http://agileinaflash.blogspot.com.br/2009/02/red-green-refactor.html Mantra do TDD 11. TDD.equals(TFD+Refatorao); 12. TFD Test First Development (code) TDD.equals(TFD+Refatorao); 13. Refatorao Uma mudana feita na estrutura interna do software para deix-lo mais fcil de entender e barato de modificar sem mudar seu comportamento observvel. Martin Fowler http://martinfowler.com TDD.equals(TFD+Refatorao); 14. Refatorao no TDD Comportamento Observvel == Testes 15. xUnit para TDD 16. Como escrever cdigo simples para rodar o teste, e com uma refatorao por vez? 17. Baby Steps http://rusbase.com/news/author/williamlearn2ru/learn2-baby-steps/ 18. Mas cuidado! https://www.mulberrybush.co.uk/ 19. O objetivo do TDD escrever clean code que funciona. Ron Jeffries https://twitter.com/RonJeffries 20. Clean Code http://programmer.97things.oreilly.com/wiki/index.php/Uncle_Bob 21. Lembre-se... 22. http://agileinaflash.blogspot.com.br/2009/02/red-green-refactor.html 23. Patterns para TDD 24. Patterns para TDD Test Como testar software? Escreva um teste automatizado. 25. Patterns para TDD Isolated Test Como os testes devem afetar uns aos outros? De modo algum. 26. Patterns para TDD Test List O que testar? Comece uma lista com os testes que voc sabe. 27. Patterns para TDD Test First Quando escrever os testes? Antes de escrever o cdigo (a ser testado). 28. Patterns para TDD Assert First Quando escrever os asserts? Tente por primeiro. 29. Patterns para TDD Test Data Quais dados usar para os testes? Dados que facilitam a leitura dos testes e a continuidade. 30. Patterns para TDD Evident Data Como representar o objetivo dos dados? Com um relacionamento evidente entre resultado esperado e resultado real 31. Red Bar Patterns 32. Red Bar Patterns One Step Test Qual teste pegar da lista? O que vai te ensinar algo e que se tem certeza de implementar. 33. Red Bar Patterns Starter Test Com qual caso de teste comear? Comece por uma variante da operao que faz nada. 34. Red Bar Patterns Learning Test Quando escrever testes para software externo? Antes da primeira vez de utilizar uma nova funcionalidade externa. 35. Red Bar Patterns Another Test Como manter uma discusso tcnica fora do tpico? Adicione na lista e volte ao tpico original. 36. Red Bar Patterns Regression Test O que fazer com um defeito relatado? Escreva o melhor teste que falhe. 37. Red Bar Patterns Break O que fazer quando se est cansado ou travado? Faa uma pausa. 38. Red Bar Patterns Do Over O que fazer quando se est perdido? Jogue fora o cdigo e recomece. 39. Red Bar Patterns Cheap Desk, Nice Chair Qual configurao fsica para TDD? Tenha uma cadeira muito boa, economizando no resto da moblia. 40. Testing Patterns 41. Testing Patterns Mock Object Como testar um objeto com recursos caros ou complicados? Crie uma verso fake com respostas constantes. 42. Testing Patterns Broken Test Como deixar uma sesso sozinha de programao? Deixe o ltimo teste quebrado. 43. Testing Patterns Clean Check-in Como deixar uma sesso em time de programao? Deixe todos os testes rodando. 44. Green Bar Patterns 45. Green Bar Patterns Fake It Qual ser a primeira implementao do teste? Retorne uma constante, e depois refatore em variveis. 46. Green Bar Patterns Triangulate Como fazer a maior abstrao conservativa com testes? Abstraia apenas quando houver 2+ testes. (Similar induo matemtica) 47. Green Bar Patterns Obvious Implementation Como implementar operaes simples? Apenas implemente-as. 48. Green Bar Patterns One to Many Como implementar uma operao de coleo de objetos? Implemente inicialmente sem colees. 49. Design Patterns bases para TDD 50. Design Patterns bases 51. E para no esquecer... 52. http://agileinaflash.blogspot.com.br/2009/02/red-green-refactor.html 53. Teste o foco do TDD? 54. The focus of TDD is design. Test is a (nice) side effect. Marco Trincardi 55. TDD usa apenas Unit Testing? 56. O ato de escrever um teste de unidade mais um ato de design do que de verificao. Uncle Bob (Robert C. Martin) http://www.techcn.com.cn 57. Agile Testing http://lisacrispin.com 58. Mas e o tal de ATDD? http://greatmiddleway.wordpress.com 59. Como um Eu quero Para que ATDD Acceptance Test-Driven Development Critrio de Aceitao Dado que Quando Ento 60. ATDD TDD 61. TDD sobre quando e como codificar ATDD sobre o que codificar 62. JUnit Test Infected: Programmers Love Writing Tests http://junit.sourceforge.net/doc/testinfected/testing.htm 63. Como aprender TDD? 64. Por que Dojos com TDD? 65. Ensinar no transferir conhecimento, mas criar as possibilidades para a sua prpria produo ou a sua construo. Paulo Freire http://aosmestresdaeducacao.blogspot.com.br 66. RSJUG Roman Numerals 67. RSJUG TroLolo (FizzBuzz) 68. RSJUG Construindo uma DSL com Java e ANTLR 69. RSJUG Testando aplicaes Java Web fora do container 70. Mas como comear j nessa segunda-feira? 71. http://www.cakeeventsblog.com 72. Implicaes Sociais Menos surpresas desagradveis QA proativo Maior colaborao entre o time Entrega contnua 73. E no esquea: 74. http://blog.gravypower.net/ 75. http://agileinaflash.blogspot.com.br/2009/02/red-green-refactor.html 76. Obrigado! Obrigado!Obrigado!