This intensive hands-on course will teach participants how to integrate test-driven development (TDD) in a way that fully harnesses the power of modern best practices to provide the most valuable software possible. TDD is about return on investment, and this course highlights a direct path to results! Derived from our popular two-week Software Development Boot Camp, this course can be customized to fit the exact needs of your team.

The default focus for this course is Java, but delivery can utilize any of the following languages: Java, C#, or C++.

Audience: This course is designed for software developers, technical team leaders and managers needing to better understand the technologies they oversee.
Course Duration: 3 days

Prior to training, students should have 3 to 6 months of experience with the programming language being used for course delivery.

Course Objectives:
  • Learn to integrate TDD
  • Acquire hands-on, intensive practice using TDD principles
  • Equip your project team to deliver the best ROI possible
Course Outline:


  • Definitions and Uses of Test-Driven Development (TDD)
    • Why TDD?
    • What is TDD?
    • TDD Benefits, Best Practices and Anti-Patterns
    • TDD Microcycle
    • Development Environment Discussion
  • Testable Designs
    • TDD and Collaborating Objects
      • Testing the Code in the Middle
    • Test Fakes, Subs, Doubles, Mocks
  • Managing External Dependence
    • Self-Validating Mock Objects
  • Delegation
    • Delegation and Why It’s So Powerful
    • How Various Design Patterns Leverage Delegation
  • Introduction to Refactoring
    • Test Smells, Code Smells
    • Critical Skills
    • Incremental Improvement
  • Architectural Vision and Incremental Delivery
    • The Big Picture
    • Vertical Slices
    • From Specific to General