Our patterns reading group here at UIUC has been looking at a collection of patterns on Testing Automation by Gerard Meszaros. Today, several of the students who usually attend these workshops are absent, because they are home in bed instead, following marathon efforts to turn in machine problems for their operating systems course.
I’d been looking in on their progress for the last few days with the sort of avuncular amusement typically reserved for watching young bucks nurse their first hangovers. Having waited until the last forty-eight hours or so before their deadlines to finish, sleepless nights and a mad dash to the finish line were all too inevitably in their immediate futures.
Amazingly, this ritual has changed little in almost thirty years. I recall, perhaps with more pride than fondness, ultimately prevailing over almost identical assignments. In my case it was during the last days of the Ford Administration, in the old Digital Computer Laboratory across the street. These pups work in the fancy new Siebel Center for Computer Science, and even from home. Then, they were virtual memory system simulations. Today, they were file system simulations. The more things change…
If anything, the target programming languages today are worse. Pascal, despite, or more to the point because, of its limitations, exposed few pointer- and destructor- hell pitfalls than does C++. The debuggers and programming environments have improved, but less dramatically than some might think.
And yet, there was one major, glaring difference between then and now. And that is the use of test cases, and automated testing. Students now are provided with a set of tests, that, when passed, indicate that the machine problem is complete. Students are encouraged to write their own unit tests as well.
In thirty years, this is the one innovation that has changed this biannual ritual for the better. The amazing this is that it took no particular technical breakthrough to enable this to happen. We could have systematically written unit tests thirty years ago, had we thought of it.
I’d guess that automated testing cut at least a day off of the student's pain and suffering time for this machine problem (to say nothing of that for the graders).
The more things change … the more important it is to test them…
--BF, in a retrospective, though not particularly nostalgic mood…
Photograph (C) 2004, The Laputan Press, Ltd.