As I think about what as been said so far on this thread, I am honestly surprised at how many non-technical factors and trade-offs seem to be creeping into the decision process of deciding what and how to test.
Aren't most of the interesting (annoying, frustrating, etc.) problems in programming the non-technical ones?.
Novice programmers can believe that the technical challenges are the only ones we consider. This is why they often apply technical solutions to business problems and are surprised when they don't work.
As we gain more experience, it's necessary to question why we do what we do. This question makes us all think about why we test what we test and what benefits we derive from them.