The advanced 3-day course is for programmers who have been applying basic
TDD and refactoring techniques for some time.
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. :-)
|
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
|
|