I was taught to do testing the classical way: a fileserver I wrote went wrong and deleted some files that I really wanted to keep. I spent the next week writing tests and now I have a fairly nice webDAV regression suite. And like you mentioned, I found a whole raft of odd bugs that I hadn't been able to track down before.
Now I have the confidence that my code (probably) won't blow up and delete someones work.
I didn't believe in evil until I dated it.