Styles of TDD: First Tests

room: Grand Ballroom F — time: Thursday 09:00-09:45, Thursday 09:45-10:30, Thursday 11:00-11:45, Thursday 11:45-12:30
Level: Practicing

It’s easy to speak of test-driven development as if it were a single method, but there are several ways to approach it. In our experience, different approaches lead to quite different solutions.

In this workshop, we’re not trying to decide which approach is best. Rather, we’ll use concrete examples to explore

  • What goes into the moment of decision when a test is written?
  • How do you think about the problem you’re trying to solve?
  • What strategies or techniques help you write the first few tests?

This workshop is targeted at TDD/BDD Practitioners.

Process/Mechanics

20 minutes - Introduction

120 minutes total: Create examples of first tests. (For 3 systems at approximately 40 minutes each)

Given a brief specification of a system:

  • Write tests for 5-10 minutes - the first few tests you would write in real life (but without actually implementing anything).

  • Sketch out how you’d evolve the system from there - for 5-10 more minutes.

  • Reflect for 20 minutes on how you decided what test to write.

To analyze the results, we’ll first characterize the styles used (e.g., Outside-In, Interaction-Based, Presenter-First).

Then we’ll share our reflections on writing first tests, and try to identify:

  • Strategies/techniques for dividing the problem

  • Strategies/techniques for transforming the problem

  • Strategies/techniques for identifying the next move

  • Characteristics of the problem that made it mesh well with our approach

40 minutes, Closing Analysis - We’ll review all the examples together and see if any trends have emerged.

The output of the workshop would be a list of avatars of TDD we see emerging, and ideas and techniques for how to write tests.

Background material: “Avatars of TDD” by Naresh Jain, http://blogs.agilefaqs.com/2007/12/14/avatars-of-tdd/
Summary of last year’s workshop : http://agile2008toronto.pbwiki.com/Styles-of-TDD

Learning outcomes
  • The participants will understand and appreciate different styles of doing TDD. We hope to discover new styles of TDD and what thinking goes on when someone writes their first test.
Featured participants
Primary target persona