I have explained Behavior Driven Development and its benefits here http://www.mehdi-khalili.com/bdd-to-the-rescue.
Hope it helps.
Hope it helps.
My understanding of your write up is that that tests may be written without understanding the problem. I mean that is just dumb TDD religious zealots who would do that sort of thing, assuming that test make up for design (and thought process). I also think that the verification process is an inherent part of waterfall model - hence the iterations.