10. P h ilo s o p h y
● Testing is to prevent defects from
occurring, not finding them
● Do it right the first time
(use TDD and continuous integration)
● QA staff should build quality into
code, rather than test
11. B u ild in g Q u a lit y In
● Involve testers in writing tests up
front to provide an executable
specification
● Mistake-proof your process by
automating testing as much as
possible
● Stop the line and fail fast
12. C o s t O f Fix in g D e fe c t s
Source: IBM Systems Sciences Institute
14. W h y TD D h a s lit t le t o d o w it h
t e s t in g
● Puts focus on requirements
● Encourages simplicity in design
● Enforces loosely coupled
components
● Encourages good Object Oriented
Design
15. W h y TD D h a s lit t le t o d o w it h
t e s t in g
● Makes your code-base fit for
handling change
● A safety net when refactoring
code
● Enforces technology which is
testable
17. TD D p r o v id e s
c o n t in u o u s
im p r o v e m e n t s ,
w h ic h g r a d u a lly
im p r o v e s t h e q u a lit y
o f yo ur c o d e b a s e
18. TD D m a k e s y o u
fa il fa s t , w h ic h
h e lp r e d u c e
t e s t in g c o s t s
19. TD D r e q u ir e s lo o s e ly
c o u p le d c o m p o n e n t s ,
w h ic h a r e a n e c e s s it y
fo r a n e v o lv in g
a r c h it e c t u r e
21. N o N e e d To C h a n g e
Th e W a y W e W o r k
22. W e N e e d C h a n g e B e c a u s e ..
● Too much time is spent on
acceptance testing in projects
● Defects keeps on reoccurring
● Developers don't take enough
responsibility for testability of
their application
24. TD D Is Fa s t B e a c a u s e ..
● You go faster by not having to go
back
● You write only code you need
● It helps prevent reoccurring
defects
● Tests document how
requirements is implemented
25. In t r o d u c in g TD D t o
a d e v e lo p m e n t
team
26. P r o b le m s y o u w ill e n c o u n t e r
● People in general don't like
change, but developers tends to
hate it
● No developer likes the word
“testing”
● Realizing the value of TDD takes
time and practice
27. H o w To In t r o d u c e TD D
● Lead by example
● Follow up all developers
● Focus upon development benefits
● Automate the build and test
process
28. D e v e lo p e r B e n e fit s
● Have a Continuous Integration
stack set up
● TDD on bug fixing, means fixing
bugs once
● Refactoring can be performed
any time in the project life cycle
29. W r it in g Te s t U p Fr o n t ...
● Helps you write only required
code
● Helps you create a loosely
coupled design from day 1
● Helps you document your
application
● Help putting focus on
requirements
30. H o w Yo u Fe e l A b o u t TD D ?
http://www.flickr.com/photos/zilliontrillion1/276600545
31. Thanks for your time!
Questions or abuse?
espen@dallokken.com
http://dallokken.com/espen