Knowledge Transfer Microsoft Certified Training Partner CTEC
Knowledge Transfer is a Microsoft Certified Gold Partner
Microsoft Certified Gold Training Partner
Search for a Course Topic:
Public Courses
Corporate Services & Training



 Course Search
Course #

 Training Delivery
Training Delivery
Custom Curriculum
Course List
 Main Menu
View Courses
Site Index

Test-Driven Development and Refactoring-Complete Overview

Day 1

Brief Intro

  • TDD: How can this possibly work?
  • Refactoring
  • A New Way of Working
  • New Code vs. Old Code

JUnit Basics

  • Write tests


  • Refactoring in baby steps
  • Code "smells" in initial exercise
  • Fixtures and Test Suites
  • The Rhythm: a little test, a little code, a little refactoring.
  • Refactor code from test-last exercise, using fixtures and test suites.
  • Use full-up TDD/refactoring to extend the trivia game example.

Day 2

Taking it Deeper

  • Fakes and Mocks
  • Static vs. Dynamic Mocks
  • Interfaces Are Key
  • Persisting to a Flat File
  • Mocking a Flat File Statically
  • Mocking a Flat File Dynamically
  • Additional Features (as time permits)

Applying Mocks

  • Persisting to a DB
  • Mocking the DB
  • Additional Features (as time permits)


  • Static vs. Dynamic experiences
  • Cost-benefit analysis
  • Lessons learned

Day 3

Dealing With Legacy Code

  • Duplication and Dependencies
  • Retrofitting Tests
  • Bite-sized Chunks
  • Go Straight for the Pain

Writing Tests for Your Own Code

(in-house courses)

  • Break into teams
  • Select local production code
  • Each team gets different code
  • Continue With Legacy Code Exercise


  • Team leaders present results
  • Brief code reviews
  • Lessons learned

Day 4

More practices!

  • Pair Programming
  • Shared codebase
  • Frequent integration
  • Resolving source diffs/conflicts

Setting up for Shared Code

  • Preparing the infrastructure
  • New Example Code; New Requirements
  • Break into Pairs!
  • Start with one pair
  • Add one new pair each half-hour


  • Pair leaders present results
  • Review one pair's code
  • Lessons learned

Day 5

  • Flexible Day! Options:
  • More work in pairs, -- or --
  • More legacy code work, -- or --
  • Testing GUIs and Test Analysis Tools


  • Meet with managers
  • Lessons learned
  • What worked? What didn't?
  • Next steps?


View Printer Friendly Page

To Inquire About Future Classes

Request a class date

if one is not scheduled.

Comments on the Course

All TDD courses are based from the book:

Test-Driven Development: A Practical Guide