presentation tdd in python
DESCRIPTION
1 hour Presentation of the basic of TDD in Python 20" Presentation 30" Demo 10" Q&ATRANSCRIPT
TDD in Python
PyDayBoFacoltà di IngegneriaUniversità di Bologna
18 marzo 2010
Roberto [email protected]
Test Driven Development
Agile practice
Prerequisites
● Code refactoring● Incremental design● Test First Programming● Unit Test
Code Refactoring
“In software engineering, ‘refactoring’ source code means improving it without changing its overall results.”Wikipedia: refactoring
Incremental Design
“Invest in the design of the system every day.”Kent Beck, Extreme Programming Explained 2nd Ed. 2004
Test First Programming
“Write a failing automated test before changing any code.”Kent Beck, Extreme Programming Explained 2nd Ed. 2004
Unit Test
White box test at code level
Test-Driven Development
Test First Programming
+ Code Refactoring
+ Incremental design
+ very short iterations (minutes)
The T.D.D. process
Run testssee new failure
Refactor
Add a test
Write some codeRun tests
see all pass
DEMO
The legacy
expenses.py
Python script used by the employees when they are abroad to collect the expenses
Expenses.py examples
> expenses.py reset> expenses.py list
> expenses.py put lunch 28.00> expenses.py put gasoline 50> expenses.py put lunch 23.50> expenses.py put hotel 85> expenses.py get lunch51.50> expenses.py get lunch hotel136.50> expenses.py get186.50
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
Idea
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!
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.
License agreement
● At least part of the material used in this presentation has been licensed as Creative Common, non-commercial, share-alike content (http://creativecommons.org/licenses/by-nc-sa/3.0/de/deed.en) 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.