Randall Parker wrote: > The point of doing compile time and test time checking is the same > reason militaries use layered defenses: More problems get caught. I've > written tons of software tests and architected a testing system for an > entire aircraft. I've also watched lots of errors get by tests.
Hmm... with that analogy, I would have to say that most people who strongly advocate static typing and compiler tests are really relying solely on their perimeter guards. They seem to think that provides sufficient defense, and forget to finish the fortress walls. That is, they often don't do adequate tests. Those of us who have really strong fortress walls might sometimes be willing to forego the perimeter guard, perhaps unwisely, but at least we know immediately when we're under attack. > Plus, tests become just another layer that needs testing. They also > become another layer that can get out of synch with the rest of the > software. Not if you are doing test-driven development, at least. In that case by definition if you're out of sync, it's the code which is failing the test because the test defines what the code should be doing. -Peter -- http://mail.python.org/mailman/listinfo/python-list