I am giving two presentations on test-driven development as well as participating on a panel discussion.

The first presentation is part of the Test-Driven Development track on Tuesday (21 September) from 11:00-12:00. Abstract:

Test-Driven Development (TDD) is simply defined as driving software development with automated tests. That said most people who learn TDD find the way they program changed for good. "Test Infected" is the phrase Erich Gamma uses to describe this change in programming practice. This session will provide an introduction to TDD, demonstrate how it works using a straightforward process, and describe the benefits you can achieve by doing TDD.  

The second presentation is a full-day hands on tutorial on Thursday (23 September) from 9:00 - 16:00. Abstract:

A practical, hands-on introduction to Test-Driven Development. Test-Driven Development (TDD) is defined as driving software development with automated tests. TDD has been gaining in popularity and along with the popularity generating a fair amount of controversy. Is this a suitable way to develop software? Does the technique leave you with code that can be maintained? Is TDD a better way to write software? This tutorial attempts to answer these questions by demonstrating how to use TDD to improve the software you write. You will learn how to create testable designs, have better confidence in your software, and create higher quality software.

Topics include:

  • Tenets of Test-Driven Development 
  • Test Type Definitions 
  • TDD Process
    • Tasks 
    • Test Lists 
    • Red/Green/Refactor 
  • Writing tests (what, when, and how) 
  • Stub/Mock Objects 
     

Attendee Background

Prerequisites: Attendees should have a good understanding of object-oriented programming concepts (i.e. classes, inheritance, encapsulation, etc) and be at least familiar with the C# programming syntax. However, if your primary language is not C# you will be able to follow along and participate because the coding exercises do not require deep knowledge of C# and help will be available if needed.

Prerequisites: Bring a laptop if you can, with an IDE (preferably Visual Studio .NET 2003) and NUnit (2.1 or 2.2) installed and working. If you do not have a laptop I will pair you with someone else who does for the coding exercises. Either way, please contact James Newkirk (jamesnew@microsoft.com) and let me know if you are bringing a laptop.

For more information and registration please see http://jaoo.dk.