What is the purpose of testing?
Last year I published in IEEE Computer a short paper entitled “Seven Principles of Software Testing” [1]. Although technical, it was an opinion piece and the points were provocative enough to cause a reader, Gerald Everett, to express strong disagreement. Robert Glass, editor of the “Point/Counterpoint” rubric of the sister publication, IEEE Software, invited both … Read more
“Touch of Class” published
My textbook Touch of Class: An Introduction to Programming Well Using Objects and Contracts [1] is now available from Springer Verlag [2]. I have been told of many bookstores in Europe that have it by now; for example Amazon Germany [3] offers immediate delivery. Amazon US still lists the book as not yet published [4], but … Read more
One cheer for incremental research
[Note: an updated version of this article (June 2011) appears in the Communications of the ACM blog.] The world of research funding, always a little strange, has of late been prey to a new craze: paradigm-shift mania. We will only fund twenty curly-haired cranky-sounding visionaries in the hope that one of them will invent relativity. The rest of … Read more
The good and the ugly
Once in a while one hits a tool that is just right. An example worth publicizing is the EasyChair system for conference management [1], which — after a first experience as reviewer — I have selected whenever I was in a position to make the choice for a new conference in recent years. At first … Read more
Methods need theory
“For someone in search of a software development method, the problem is not to find answers; it’s to find out how good the proposed answers are. We have lots of methods — every year brings its new harvest — but the poor practitioner is left wondering why last year’s recipe is not good enough after … Read more
Void safety: Getting rid of the spectre of null-pointer dereferencing
A spectre is haunting programming — the spectre of null-pointer dereferencing. All the programming languages of old Europe and the New World have entered into a holy alliance to make everyone’s programs brittle: Java, C, Pascal, C++, C# and yes, until recently, Eiffel. The culprit is the use of references to denote objects used in calls: … Read more
Contracts written by people, contracts written by machines
What kind of contract do you write? Could these contracts, or some of them, be produced automatically? The idea of inferring contracts from programs is intriguing; it also raises serious epistemological issues. In fact, one may question whether it makes any sense at all. I will leave the question of principle to another post, in … Read more
Long AND clear?
(Originally a Risks forum posting, 1998.) Although complaints about Microsoft Word’s eagerness to correct what it sees as mistakes are not new in the Risks forum, I think it is still useful to protest vehemently the way recent versions of Word promote the dumbing down of English writing by flagging (at least when you use … Read more
Computer technology: making mozzies out of betties
Are you a Beethoven or a Mozart? If you’ll pardon the familarity, are you more of a betty or more of a mozzy? I am a betty. I am not referring to my musical abilities but to my writing style; actually, not the style of my writings (I haven’t completed any choral fantasies yet) but … Read more