SPA Conference session: Measuring the Effect of Test-Driven Development

One-line description:
 
Session format: Workshop (75 mins) [read about the different session types]
 
Abstract:Beck has described the investigation of scale-free properties of programs as the most intesesting topic in computer science today, and the experimental approach to the study of the properties as being the "science" in "computer science".

Ongoing research has exposed the frequent occurence of various "scale-free" properties in the runtime object graph[1] and source code dependencies [2] of some OO systems. One of the presenters as also uncovered evidence that characteristic properties of the scale-free distribution of complexity in a program may vary in a consistant way depending on whether the code was written TDD or not[3].

This offers the promise of an objective measure of the effect of adopting the practice of TDD. The hypotheses are that programs written TDD have a bias towards smaller methods than non-TDD codebases of similar size, and that the largest methods in TDD codebases are smaller than the largest methods in non-TDD codebases of similar size. It is asserted that these features of a codebase a beneficial and so represent a measure of the benefit of TDD. Cyclomatic Complexity is used as a measure or method size independent of coding quirks. Unit tests/CC is used as the measure of TDD-ness.

During this session attendees will be presented with an overview of the scale-free properties of natural systems and of code, and an explanation of the proposed "TDD-ness" measures, whith an overview of the existing data. They will then use autoamted tools provided to measure code samples they bring with them (or download during the session) and add to the body of data. After some more data gathered the validity of the hypothesis will be reviewed, and the impact that such statistical measures of the impact of design practices discussed.

Attendees will need to bring laptops with some form of connectivity (and the venue will need some bandwidth for them to connect to)

[1] http://www.mcs.vuw.ac.nz/comp/Publications/CS-TR-02-30.abs.html
[2] http://www.elvis.ac.nz/brain?ShapeOfJavaSoftware
[3] http://peripateticaxiom.blogspot.com/2006/05/complexity-and-test-first-0.html
 
Audience background:Programmers with some exposure to TDD.
 
Benefits of participating:Gain an inderstanding of the scale-free properties of codeabases, join in the adventure of finding out if these properties can be used as a guide to effective TDD practice.
 
Materials provided:Slide pack describing scale-free behaviour, explaining the proposed metric and containing previous results.

Automated measurement tools for at least Java (maybe C# too).

Automated data gathering tools
 
Process:Presentation, individual/small group experimentation, group disucssion
 
Detailed timetable:
 
Outputs:Web page, poster, mail, access to the measuring tools (and hopefully a paper at some subsequent conference)
 
History:A briefer version proposed to XPDay 2006, has gathered a lot of interest and many votes to go on the programme
 
Presenters
1. Keith Braithwaite
Zuhlke Ltd
2. Tim Cianchi
Zuhlke Engineering Ltd
3.