Bah, testing. Who needs it? The list of reasons not
to test is weighty:
- Testing takes time. I'm already working on tight deadlines. You want me to take extra time to test that each and every permutation of every single-dingle subroutine or method works the way I expect it to? fsck that, I'd rather move on to my next project. Let the QA department do their own durn work.
- Testing is different. I've never had to do it in the past. Sure, I've run across some really head-scratching bugs in the past that took me an hour or a day or a week to track down- but I'd rather fix bugs than slow down production.
- Testing is optional. "Optional", of course, means "not required": my managers haven't told me that it's "test your code or hit the road". If they do, I'll probably get another job: who are they to question my ability to do my job correctly the first or second (or, okay, there was that one time, seventh) time around?
- Testing is counter-cultural. The other programmers aren't doing it; why should I?
Now, before reading such Meditations such as this one, or chromatic's testing
articles on perl.com, I *seriously* believed the above. (Well, partially believed some of it anyway.)
If you learn quickly, you only need to make one mistake before taking up testing as part of your development process. I learn pretty slowly, though: it's taken me many mistakes, and even more meditations and articles than I care to link to.
What changed my mind? I can't say. Experience, to be sure. However, experience just showed me that I needed to do something different - not what I should be doing different, or how.
Monks - if you found yourself agreeing with my list above - re-read Ovid's node. Re-read Zaxo's reply. Dissect trs80's sample testing code. Super Search for nodes that talk about testing. You can afford to be picky in authorship: everyone who's anyone has written about the benefits of testing somewhere within the Monastery.
And give testing a shot. Through the Monastery I've become aware of the importance of good coding practices: use strict; use warnings; profile before optimizing; seek thee a better algorithm; test, test, and test again.
setenv EXINIT 'set noai ts=2'