30 September - 2 October 2015

Churchill College, Cambridge, UK

Working effectively with legacy tests

Duncan McGregor oneeyedmen
Nat Pryce Technemetis

Session type: Hands-On Session
Session duration: 90 minutes

Slides from session

The slides used for this session are available to download from here.

About this Hands-On Session

The adoption of automated testing has locked down the behaviour of a lot of code, which can be a blessing and a curse.

These days we spend a lot of our time fighting tests which slow down our refactoring because they have failed to improve the design of the system. If they also run slowly and communicate little about intended behaviour, we might be tempted to wonder whether they are earning their place in our codebase.

In this workshop, we invite you to bring your unloved legacy tests to a group therapy session. We'll work together to help them change, curbing their destructive behaviours whilst improving their documentation of the system. In a non-judgemental, supportive environment we'll all help the tests to become productive members of society.

If you have a troubled test, bring along your laptop, hook it to the projector and we'll work as a mob to make it better. If not, there will be lots to learn as we work through other people's issues.

About the Speakers

Duncan McGregor

Duncan is an unreformed XP programmer old enough to know better.


Nat Pryce

Nat Pryce is co-author of Growing Object Oriented Software, and not quite so old as Duncan


Session Types

Need help planning which sessions to attend? We've provided a breakdown of our various session types below.

Case Study/Experience Report

A presentation and discussion of real-life (not theoretical) experiences of the application (or mis-application) of service design techniques. Case studies and experience reports include some discussion of lessons learned and an indication of how novel the work is.


Participants learn a new approach, tool or technology through using it to solve one or more practical exercises. Any software/hardware requirements are disclosed in the session description.


A session focused around some specific tool, technique or issue. Primarily led by the speaker, tutorials usually include some elements of interactivity or individual / group exercise.


An in-depth working session on a specific topic. May include paper presentations.