Full Course Description
TDD is often mistaken for simply writing unit tests. The deeper truth is that TDD is first and foremost about incrementally specifying, implementing, and improving your software's design. During the sessions, the students will be introduced to design using TDD as well as design using standard UML. The course is heavily exercise-driven with the students spending the majority of the time accumulating greater skill by applying the concepts in incrementally more complex sub-projects.
Improving's instructors bring real-world experience and insight to the classroom, and students walk away with knowledge, experience, and references to enhance retention.
Developers with current object-oriented programming experience interested in learning more about high quality object-oriented design and test-driven development.
1 month or more experience programming in an object-oriented language.
Students will learn to:
Assign responsibilities to classes to make the solution flexible, extensible, and maintainable.
Think in objects
Develop code using the TDD cycle
Make design decisions during TDD
Design good tests so that they are independent and fast
Use dummies, stubs, fakes and mocks as appropriate to achieve test isolation and repeatability
Detect suspicious code
Basic Tips and techniques for refactoring bad code
Use a Unit Testing tool
Use a code coverage tool
Explain Coupling and Cohesion
Use polymorphism to create flexible solutions
Decide when and (more importantly) when not to use inheritance
Understand the connection between fundamental object-oriented design principles and design patterns
Effectively use UML to communicate a design
Use UML Interaction Diagram notation
Use UML Static Structure notation