Lately my downfall has been buggy test scripts.
- Wrong test count. I know there's a no_plan option, but that would leave me defenseless against
- Premature death of test script. Often the result of trying to exercise exceptions and error handlers. Yes, I know, the remedy is eval.
- Remembering how to use TODO and skip and skip_todo, or is that todo_skip? Finding out that skip if doesn't always protect a test script from tests that blow up, even though they're supposed to be skipped. See previous point.
- Testing exec.
- Forgetting to use diag for output, and printing something in a format that confuses the test harness.
- Testing subroutines and methods that print their own output.
It's still worth writing tests. Once I get a test to work, I can keep it around forever, and regression testing has saved me a lot of time over the years. I just wish there were a Test::Test module.