Test Driven Development and Refactoring are powerful tools. With them you can add new code to systems and make existing code more maintainable. However, refactoring code without having tests in place can be hazardous. This class presents a collection of dependency breaking and test writing techniques that can be used to get existing code safely under test for refactoring. These techniques can be used in conjunction with Test Driven Development to breathe new life into large existing code bases.
Preparation
This class is structured as a set of lectures, discussions, and hands–on exercises. The exercises will be available in Java, C++, and C#.
Outline
Day 1
Introduction ⁄ Testing as a Programmers tool
Seam identification
Breaking Dependencies – Sensing and Separation
Breaking Manifest Dependencies
Breaking Hidden Dependencies
Characterization Testing
Day 2
Strategies for Getting Large Methods under Test
Refactoring Architecture for Testability
Larger scale testing with Fitnesse
Michael Feathers, Senior Trainer, Mentor and Consultant
Michael Feathers is a senior member of Object Mentor team. He provides training, coaching and mentoring services in Agile⁄XP programming practices, test–driven development, refactoring, object–oriented design, Java, C#, and C++. Michael has over 12 years of experience in developing world–class software solutions. Prior to joining Object Mentor, Michael designed a proprietary programming language and compiler as well as a large multi–platform class library and a framework for instrumentation control.
Michael is an active member of the Agile⁄XP community. As a contribution to this community, he developed and maintains the CPPUnit — an open source C++ port of the JUnit testing framework. He is a member of the ACM and IEEE. He regularly speaks at software conferences around the world and has been the acting chair for the Codefest event at the last three OOPSLA conferences.
When Michael isnt engaged with a team, he spends his time investigating new ways of altering design over time in codebases. His key passion is helping teams surmount problems in large legacy code bases and connecting with what makes developing software fun and enriching.
MEET MICHAEL FEATHERS AT NDC2010, READ MORE
HERE