110 likes | 276 Views
Test driving to clean CODE. Kenrick Chien CTO, Critical Phase. Photo by Toni Blay - http://flic.kr/p/5CNci. Code we want to avoid. BENEFITS. Easy to refactor Cleaner; less time spent debugging Documentation - examples More time to do what you enjoy. THE TDD “CYCLE”. RED GREEN
E N D
Test driving to clean CODE • Kenrick Chien • CTO, Critical Phase
Photo by Toni Blay - http://flic.kr/p/5CNci Code we want to avoid
BENEFITS • Easy to refactor • Cleaner; less time spent debugging • Documentation - examples • More time to do what you enjoy
THE TDD “CYCLE” • RED • GREEN • REFACTOR
UNCLE BOB’S Three LAWS OF TDD • You are not allowed to write any production code unless it is to make a failing unit test pass. • You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures. • You are not allowed to write any more production code than is sufficient to pass the one failing unit test.
MYTHS • All about unit tests • Testing methods, not behavior • Too slow; I don’t have time for this!
Limitations • New language /framework • Database & UI • Culture
references Beck, K. Test-Driven Development by Example. Addison Wesley, 2003. Erdogmus, Hakan; Morisio, Torchiano. "On the Effectiveness of Test-first Approach to Programming". Proceedings of the IEEE Transactions on Software Engineering, 31(1). January 2005. <http://iit-iti.nrc-cnrc.gc.ca/publications/nrc-47445_e.html> Freeman, Steve and Nat Pryce. Growing Object-Oriented Software, Guided By Tests Massachusetts: Pearson Education, Inc, 2009. Fowler, Martin. Refactoring: Improving the Design of Existing Code. USA: Addison Wesley Longman, Inc. 1999. Martin, Robert. Agile Software Development Principles, Patterns, and Practices. New Jersey: Pearson Education, Inc. 2003.
Contact • e-mail: ken.chien@criticalphase.com • website: http://www.criticalphase.com • blog: http://geekyninja.blogspot.com • twitter: @kenrickchien