Test-Driven Development of Asynchronous Systems: Slides Online
Here are the slides and notes from my talk on Test-Driven Development of Asynchronous Systems that I have presented at XP Day 2008 and Software Craftsmanship 2009.
The presentation describes what I learned on several past projects applying test-driven development to distributed systems with message-oriented middleware, REST web services and user interfaces written with AJAX and Swing.
The test frameworks for these projects have a common architectural style, which can be applied to testing any system that has concurrent or asynchronous behaviour.
The presentation describes some common problems encountered when testing concurrent systems, and how those problems can be addressed with some simple testing idioms.
Updated 28 Feb 2009: now links to the SC2009 version of the notes, which describe more techniques for testing concurrent and asynchronous code and describe the Probe/ProbeRunner mechanism in more detail.