This post originated from an RSS feed registered with Python Buzz
by Ian Bicking.
Original Post: Testing considered harmful
Feed Title: Ian Bicking
Feed URL: http://www.ianbicking.org/feeds/atom.xml
Feed Description: Thoughts on Python and Programming.
Maybe Dijkstra isn't going that far, but it's an interesting argument against testing. He would certainly have bristled at the notion that "once your tests pass your code is done," even if tests still serve a certain purpose.
Sometimes I feel I should reread my software more often. If it's not worth rereading, then it's too long and should be cut. If it is too good to need refinement, then reading it will simply make me feel happy even if I don't change it. But by rereading, I may feel more certain of the correctness of the program, as well as the conceptual integrity. Unit tests are good, but unit tests do not make code *beautiful*.
Another interesting point he makes: programs are not correct, computations are correct. That is, it is the *running* of the program that must be correct, in the fullness of its environment within and beyond the computer it runs on. Indeed, this is why I believe the Turing Machine is not applicable to real programming, because no useful programs can be reduced to a Turing Machine. Useful programs are useful only because they produce useful computations, and without I/O a Turing Machine is fundamentally unable to be useful.