I still slap my own hand, though.
I still slap my own hand, though.
There is, of course, a middle way. Implement as much testing as makes sense for you. Think Pareto.. just the right 20% of testing could give you 80% of the gains.
So.. implement integration tests that test your apps very broadly and as soon as one fails, you know you can start looking deeper. No need to always start with line by line unit tests :)
I prefer the approach we used here (at a non-startup). We simply decided that we were going to use automated tests as much as possible on a new project. Everyone was encouraged to use them. Our coverage wasn't 100%. However, when you are committed to creating an automated test case to reproduce any bug regardless of how the bug was originally found, your coverage expands. Usually you can write variants of the same test to cover related areas.
I can't speak for every member of the group, but my total testing time went down slightly and my test coverage improved enormously. Full TDD is not necessary in every instance. Just because you can't immediately make the jump to full TDD doesn't mean that automated unit test tools won't make your code better, and your testing easier.
The time you "lose" on the frontend of development is made up on the back.
You could do it even if you've never had an accident, many people do.
But most of the time you start doing it AFTER you go off the road once.
The asinine thing about this is that unit testing saves a massive amount of time in the long run. In the short run, even, it saves time.
You're really shooting yourself in the foot.
"...automated test suite saved the client 117 days of manual effort per testing cycle."
Sure, it takes more time to construct any given feature with unit tests versus a completely untested solution. However, any time you need to change the code, add a feature, or change something it interacts with, you are saving an incredible amount of time both in testing and the prevention of bugs discovered in production.
I really don't understand how, in the long run, automated testing can't save you time. If you don't think so, you obviously haven't maintained any software.