Quote:
Originally Posted by daveT
Let's not kid ourselves.... 90% of programming is basic tasks.
That's the point - it's not like writing a complicated math proof, but taking care of a long list of edge cases. And performing such basic tasks reliably is surprisingly difficult for humans, especially at scale necessary for today's large systems. Tests exist to catch stupid mistakes, not fundamental design errors.
Quote:
This doesn't mean I don't write tests at all; I just think that they are needed much less than people claim.
This depends on your scale, reliability requirements and frequency of changes. The larger your system and the greater your reliability requirements and the more frequently you deploy, the more important it is that you have a reliable automated test suite that covers large portions of the system. It's hard to talk about the importance of automated tests in the abstract without understanding the nature of the system and the business requirements. I will say that I've rarely seen systems that had adequate levels of test coverage.