The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong, it usually turns out to be impossible to get at or repair.
Developer unit testing has become a de facto standard in the Java community. The confidence and structure that JUnit and other testing frameworks bring to the development process are almost revolutionary, if you think about it. To those of us who were actively developing Java applications in the latter years of the 20th century, automated unit testing was almost unheard of. Sure, we wrote tests, but they were hardly automated or even a part of a standard build!