Adaption SoftwareThere is a revolution going on.
 . Home . Contact .   
3-Day Advanced Course:
Test-Driven Development and Refactoring

Deeper and Deeper

The advanced 3-day course is for programmers who have been applying basic TDD and refactoring techniques for some time.

Format and Contents

Our 3-day course picks up where the 1st day of the basic 3-day course leaves off. It covers different techniques for using fakes and mocks in the context of maximizing test coverage and speed by minimizing dependencies between classes. It also covers test-last and refactoring strategies for legacy codebases. As in the basic course, short morning lectures are followed by hands-on programming sessions. You use TDD for as long as possible each day.

Note: Course contents are subject to improvement without notice. :-)

Course Outline and Schedule

Day

Time

Contents

Day 1

09:00 - 10:00

Taking it Deeper
· Fakes and Mocks
· Static vs. Dynamic Mocks
· Interfaces Are Key

10:00 - 12:00

Persisting The Trivia Game
· Persisting to a Flat File
· Mocking a Flat File Statically
· Mocking a Flat File Dynamically
· Additional Features (as time permits)

12:00 - 13:00

Lunch

13:00 - 16:00

Applying Mocks to the Trivia Game
· Persisting to a DB
· Mocking the DB
· Additional Features (as time permits)

16:00 - 17:00

Retrospective
· Static vs. Dynamic experiences
· Cost-benefit analysis
· Lessons learned



Day 2

09:00 - 10:00

Dealing With Legacy Code
· Duplication and Dependencies
· Retrofitting Tests
· Bite-sized Chunks
· Go Straight for the Pain

10:00 - 12:00

Writing Tests for Your Own Code (in-house courses)
· Break into teams
· Select local production code
· Each team gets different code

12:00 - 13:00

Lunch

13:00 - 16:00

Continue With Legacy Code Exercise

16:00 - 17:00

Retrospective
· Team leaders present results
· Brief code reviews
· Lessons learned



Day 3

09:00 - 10:00

Testing GUIs
· GUI-testing Intro
· JFCUnit, Jemmy, Ultra-Thin GUIs
· Jester, NoUnit, Clover, etc

10:00 - 12:00

Checking the Tests from Day 2
· Break into teams
· Assign code and tools to teams
· Run the tools on the code

12:00 - 13:00

Lunch

13:00 - 16:00

A GUI for the Trivia Game
· Break into teams
· Assign code and GUI tasks to teams
· Test-drive some GUIs

16:00 - 17:00

Retrospective
· Team leaders present test and GUI results
· Brief code reviews
· Lessons learned



    - TDD Courses
    - XP Courses
    - 3-Day TDD Course
    - 5-Day TDD Course
    - 3-Day Adv. TDD
    - XP Programmer Wk
    - XP Team Week