"Interaction-Based Testing: Beyond Classical Unit Testing"

Who: Scott Miller, Atomic Object

When: November 27, 2007

This talk is a shortened version of a tutorial that Scott did this year at Dr. Dobb’s Architecture & Design World in Chicago.

This tutorial is focused on the practical use and application of interaction-based unit testing using dynamically generated mock objects. Attendees will follow along with the presenter in pairs on their laptops through the instruction and examples of interaction-based test driven development. While the principals and standards that will be covered in this tutorial apply to many development environments, the examples and projects will be done in either Java or C#. The tutorial will be divided into three parts. Part one will briefly review the methods and purposes of state-based unit tests. Examples will illustrate classical state-based TDD. Part two will introduce the problems and development road blocks often encountered when developing software using state-based unit tests. A few exercises will be presented and worked on by the class with the assistance of the instructors. The third and longest part of the tutorial will introduce the concept and benefits of interaction-based unit testing. The purpose and use of mock objects will be described and the use of dynamic mock generation libraries will be demonstrated. Examples and exercises based on interaction-testing will follow.

Speaker Bio

Scott joined Atomic Object in May of 2005 and brought a considerable amount of application development experience with him. After working as an independent consultant as a means of paying for school, Scott began working as a developer full time in the late 80s. He has lead or participated in a wide range of projects including Kitchen & Bath design, Automotive job costing, Explosives detection, Golf and hockey league management, Internet-based file sharing, and several applications in the textile and apparel design field.

At the same time, he has picked up extensive experience in many computer languages and development environments. Among these are C, C++, C#, Java, Html, and Python. In addition to working on cool projects for our clients, Scott has spent a lot of time lately presenting many aspects of our software design beliefs and methods at several local and national software developer conferences.

When not developing software, Scott enjoys spending time with his wife and two young sons. The rest of his free time (let’s see, that works out to about 19 minutes per month) is spent golfing, tending goal for his rec league hockey team, and playing in the occasional poker game or tournament (no TV appearances yet, alas).