You are only as good as your tests
I’ve been getting the testing religion. This is one of those things where serious software engineers respond with something along the lines of, “You mean you’re only now discovering testing?!?” and everyone else says, “Huh?”
I’m not going to try to explain testing in detail, but the rough outline is that a testing infrastructure allows you to define a set of acceptable output parameters from a program, then run the test against the program every time you change it. This provides you with some warning if an “improvement” you made turns out to break the program. It’s a great tool for making more-reliable software, and there are some people who actually practice “test-driven development,” where the tests are written first, and then the programs created specifically to pass the tests.
There are drawbacks, of course. One is that you can spend as much time writing tests as writing “real” software. (The counter-argument is that you supposedly spend much less time bug-fixing or otherwise re-writing.) The one I’ve run up against lately is that the tests really do have to define the most-important facets of the tested program. At one point last week, I wrote a test, then wrote a stub method which passed the test but didn’t actually do any work.
Noah suggested that we really needed a t-shirt which reads, “You are only as good as your tests.” We went looking—surely on the whole vast ‘net such a thing is for sale—but according to Google, there’s only one other document with that exact phrase, and it’s a PDF. Clearly we need to create such a thing and offer it in the company store. If we had a company store.
Now Playing: Jimmy Olsen’s Blues from Pocket Full of Kryptonite by Spin Doctors