in reply to how to begin with testing?
“Testing” in Perl is an especially poignant example of TMTOWTDI. A search of CPAN on the word, “test,” produced 5000 hits, and a search of module-names beginning with Test:: has 806 entries today.
What has become absolutely clear to me is that, “punching a few buttons” and from that saying, “okey, it seems to work...” isn't enough. Also, “you really don't know ‘your own’ code!” No... the only way to test, is to do so very explicitly and continuously.
When you start doing this aggressively, you realize just how unstable code that you believed to be “production ready” actually was, all this time. (And that's a very sobering thing to realize about your profession.) But when you start building things out of code that is being aggressively tested while you build it, and/or you start flushing-out the problems in production code before users have a chance to find them, you start “waking up in the night” much less often.