TDD - una introduzione

1,274 views
1,155 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,274
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

TDD - una introduzione

  1. 1. Test Driven Development Roberto “FRANK” Franchini [email_address] [email_address] http:// www.celi.it http://www.memesphere.it
  2. 2. whoami(1) <ul><li>sviluppa software per information extraction, opinion mining, natural language processing, sentiment analysis
  3. 3. tenta di essere agile, ma sopra il quintale gli riesce difficile
  4. 4. si diletta con Linux(TM) e gioca a fare il sysadmin con i server aziendali </li></ul>
  5. 5. Agenda <ul><li>TDD: test driven che?
  6. 6. Cosa non è
  7. 7. Cos'è
  8. 8. Il mantra
  9. 9. Cosa si ottiene
  10. 10. Sì, ma tanto non si può fare
  11. 11. Riferimenti </li></ul>
  12. 12. TDD: test driven che? <ul><li>Nasce come Test Driven Design
  13. 13. Diventa Development
  14. 14. E' una delle pratiche di XP
  15. 15. E' una tecnica di programmazione
  16. 16. Ma soprattutto
  17. 17. “ the goal of TDD is to write clean code that works” </li></ul>
  18. 18. Cosa non è <ul><li>Non è testing
  19. 19. Non è testing
  20. 20. Non è testing
  21. 21. Forse non è chiaro ma...
  22. 22. Non è una pratica per il testing </li></ul>
  23. 23. Ma allora cos'è? <ul><li>E' una pratica di design e sviluppo , non di validazione del codice
  24. 24. Il fatto che al termine ci si trovi con una suite di test può essere considerato un effetto collaterale
  25. 25. TDD=TFD (Test First Design) + Refactoring </li></ul>
  26. 26. Il mantra <ul><li>Red: scrivi un test e fallo fallire
  27. 27. Green: scrivi le linee di codice che soddisfano il test
  28. 28. Refactor: elimina le duplicazioni
  29. 29. Riparti da Red </li></ul>
  30. 30. Cosa si ottiene <ul><li>I test sono di unità: isolamento
  31. 31. Codice altamente coeso e poco accoppiato (OCP principle)
  32. 32. Si fa analisi continuamente, a ogni ciclo RGR:no cowboy
  33. 33. Più facile evolvere il design
  34. 34. Più facile correggere i bachi </li></ul>
  35. 35. Sì, ma tanto non funziona <ul><li>Più di 500 test per il nostro modulo core
  36. 36. Curva di apprendimento ripida
  37. 37. Ma se sei test-infected... niente più linee senza
  38. 38. TDL (Test Driven Learning): se non conosci una api, scrivi un test </li></ul>
  39. 39. Riferimenti <ul><li>http://www.agiledata.org/essays/tdd.html
  40. 40. http://www.junit.org/
  41. 41. http://testng.org/doc/index.html
  42. 42. http://www.testdriven.com/
  43. 43. “ Test Driven Development: By Example” (Kent Beck)
  44. 44. “ Growing Object-Oriented Software, Guided by Tests” (Nat Pryce, Steve Freeman)
  45. 45. “ Agile Software Development, Principles, Patterns, and Practices” (Robert C. Martin) </li></ul>

×