Tutorial: "TDD tutorial"

Track:   Tutorial

Time: Friday 09:00 - 12:00

Location: SAS Room 13/14

Abstract:

This tutorial demonstrates the development of a small example application using test-driven development and related technologies. The system will comprise a handful of Java classes that exemplify typical components found in enterprise applications, including domain objects and a service layer. The tutorial is structured into three 'iterations' which cover

  1. state-based testing with JUnit
  2. interaction-based testing with JUnit and jMock
  3. deployment in lightweight containers such as PicoContainer and Spring.

The iterations not only introduce the concepts but also provide room for the discussion of trade-offs and edge cases, e.g. how to deal with testing private methods and when not to use dynamic mocks but fake objects.

Attendees gain an understanding of how proper use of test-driven development fosters good design; through decoupling and interface discovery for example. Attendees will also gather a nice catalogue of the most commonly used patterns used in conjunction with test-driven development.

Track host: Erik Dörnenburg, ThoughtWorks

 Track host: Erik  Dörnenburg

Erik Dörnenburg is an application architect and developer at ThoughtWorks Inc., where he is helping clients with the design and implementation of large-scale enterprise solutions. Building on his experience with J2EE, Microsoft .NET and other environments, Erik is continually exploring new patterns of enterprise software.

Before joining ThoughtWorks Erik was Technical Director at Pixelpark UK, a new media company, where he integrated enterprise systems with web-based solutions and a variety of digital delivery channels. His career in enterprise software began in the early nineties on the NeXTSTEP platform and Erik has been an advocate of agile, test-driven, object-oriented development and Open Source software for many years. He holds a degree in Informatics from the University of Dortmund and has studied Computer Science and Linguistics at the University College Dublin.

Martin Fowler, ThoughtWorks

 Martin  Fowler

I'm an author, speaker, consultant and general loud-mouth on software development.

I concentrate on designing enterprise software - looking at what makes a good design and what practices are needed to come up with good design. I've pioneered object-oriented technology, refactoring, patterns, agile methodologies, domain modeling, the Unified Modeling Language (UML), and Extreme Programming.

I'm the Chief Scientist at ThoughtWorks - an international application development company. I've written five books on software development: Analysis Patterns, UML Distilled (now in its 3rd edition), Refactoring, Planning Extreme Programming (with Kent Beck), and Patterns of Enterprise Application Architecture. I also write articles regularly on my site at Martin Fowler.