The Golight: Tool Support for Test-Driven Development
7 February, 2008
At the Hasso-Plattner-Institut (HPI) in Potsdam, all Bachelor students have to participate in a software development project in their final year. Said projects are usually issued by industry collaborators, and hence are “real” development tasks that often yield actual products. The different HPI research groups coach the student project groups.
This year’s Bachelor project of the Software Architecture Group was issued by CollabNet, the company that spawned Subversion. The students are working on SqueakSVN to make SVN version control and tooling available in Squeak.
Coaching in the Software Architecture Group includes training in agile methodologies, with a strong emphasis on Extreme Programming. Of course, this includes heavy testing.
The students were facing the question of how to make the current project status perceivable in a motivating way. Ideally, the status should be immediately visible when entering the project room in the morning, without the need to start up a Squeak image and run all the tests first.
They came up with a really nice idea: the “test stoplight”, or, rather, “golight” to make it sound more positive. It’s as simple as this. A wooden board, three red, yellow, and green light bulbs, sockets, power supply lines, and an USB-controlled multiway connector make up the hardware part of the golight.
Realizing the software part was also easy. One computer plays the role of a dedicated test server, running a Squeak image. In this image, a process checks out the most recent version of the software from the repository every five minutes, runs all the tests, and switches on the light corresponding to the color of the TestRunner bar. At night, it switches the lights off entirely.
The software does not even have to know anything about the protocol used to drive the multiway connector. The connector comes with a set of command-line tools that can be run from Squeak using OSProcess. These are currently limited to the Windows operating system, but since controlling the connector is basically about writing some data to a serial connection, it should not be too hard to come up with solutions for other platforms.
This morning, when I first saw the golight, it was showing green.
Feel free to contact us for detailed building instructions and information related to the software!