|Think about Loose Coupling|
Re^2: "Practices and Principles" to deathby ack (Deacon)
|on Feb 29, 2008 at 07:32 UTC||Need Help??|
Wonderful points. Yes, I do tend to exagerate in my excitement. I try to curb it, but it seems to poke through when I least want it to.
With regard to test-driven design: I absolutely would never argue against it...or any other useful and productive process...especially with respect to testing. Testing is absolutely necessary and worthwhile. There is, for me, no "crushing path of deep darkness and despair"...testing is enlightenment. So you'd be absolutely justified in challenging (and probably crushing) my argument(s) if that was what I was saying.
All I was intending to reflect is that it seems that when it comes to testing, I see so much emphasis placed on things like metrics for metrics-sake, test suites that are "required" to be run even when the applications have long since outgrown the utility of those tests. But we are still required to do them because they are part of our policies that, themselves, never get questioned.
I applaud...and demand...good, meaningful and complete (to the extent that we can make it 'complete') testing of our systems. And getting testing that good takes a lot of thought and experience and desire to produce a successful system. Figuring out how to achieve that without 'breaking the bank' as they say makes it more of an art, in my opinion, than a science. Having tools like the Test::* modules makes it much more effective and meaningful...not the least of which reason, in my opinion, is that it frees us to do more thinking.
One of the points that I failed to mention in my original node was that we use Perl as our language of choice to do and control all of our systems testing; it allows us to quickly develop and implement tests freeing our engineers to have much more time to think about what should be tested rather than focusing on cookbook prescriptions from the community's collective policies (and in my business we have so many policies that we've invested substantial amounts of money in systems to to ensure that we don't miss any of the 'policies'). It also allows us to automate the entire testing process; resulting in much faster and repeatable testing.
But we get an almost non-stop criticism from throuhout our industry for even using Perl...because it's not part of the 'standard way of testing systems'.
Anyway, your response was wonderful and I am sorry for leading you (or anyone else) to think that I was railing on testing or any of the Test::* modules...I have used several (though I tend to return to Test::Simple for most of my needs) and all have been most useful and helpful.
ack Albuquerque, NM