Presentation TDD in Python

Uploaded on

1 hour Presentation of the basic of TDD in Python …

1 hour Presentation of the basic of TDD in Python
20" Presentation
30" Demo
10" Q&A

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. TDD in Python PyDayBo Facoltà di Ingegneria Università di Bologna 18 marzo 2010 Roberto Bettazzoni
  • 2. Test Driven Development Agile practice
  • 3. Prerequisites ● Code refactoring ● Incremental design ● Test First Programming ● Unit Test
  • 4. Code Refactoring “In software engineering, ‘refactoring’ source code means improving it without changing its overall results.” Wikipedia: refactoring
  • 5. Incremental Design “Invest in the design of the system every day.” Kent Beck, Extreme Programming Explained 2nd Ed. 2004
  • 6. Test First Programming “Write a failing automated test before changing any code.” Kent Beck, Extreme Programming Explained 2 nd Ed. 2004
  • 7. Unit Test White box test at code level
  • 8. Test-Driven Development Test First Programming + Code Refactoring + Incremental design + very short iterations (minutes)
  • 9. The T.D.D. process Add a test Run tests see new failure Refactor Write some code Run tests see all pass
  • 10. DEMO
  • 11. The legacy Python script used by the employees when they are abroad to collect the expenses
  • 12. examples > reset > list > put lunch 28.00 > put gasoline 50 > put lunch 23.50 > put hotel 85 > get lunch 51.50 > get lunch hotel 136.50 > get 186.50
  • 13. User Story As an employee I want to use my expenese program via web so I can collect the expenses with a device that does not support Python
  • 14. Idea
  • 15. Tasks ● Create a web server ● Create the HTML page (ask Peter) ● Read the HTTP parameters ● Test the legacy ● ● Refactor the legacy to connect to the HTML commands Build the damn thing!
  • 16. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  • 17. License agreement ● ● At least part of the material used in this presentation has been licensed as Creative Common, non-commercial, share-alike content ( from Roberto Bettazzoni. As per the license agreement you are entitled to do whatever you like to the material as far as is not contradicting basic principle of the license. On top of that Roberto Bettazzoni kindly asks you to return any change you will make to this material, for validation and sharing purposes.