From: Eleanor McHugh Date: 2008-08-16T22:54:28+09:00 Subject: Re: BDD and TDD - What are they for? On 16 Aug 2008, at 12:51, David A. Black wrote: > On Sat, 16 Aug 2008, Phlip wrote: >> Clinton D. Judy wrote: >> >>> BDD looks like a way to make it easy for non-programmers to do >>> programming, but not having people keep several functions in mind >>> at any >>> one time. And it also does TDD? Am I close? >> >> Yes - BDD is TDD with an added layer: A "literate programming" >> framework that forces you to think in clear English* statements >> that your client could understand. > > I wouldn't call it literate programming in the Knuthian sense, though. > Knuth says: "The practitioner of literate programming can be regarded > as an essayist, whose main concern is with exposition and excellence > of style."[1] It's a different undertaking from writing BDD > specifications (even though of course it's nice if BDD specifications > are reasonably well-written). Many programmers believe they're bad at writing essays, and rather seeing an opportunity to improve their skills they would rather write tests. But tests are only as good as the analysis which goes into them and can very quickly become redundant when working on greenfield projects with very loose requirements. They're also as prone to error as any other code so beyond a certain level of complexity it's not entirely obvious that they improve code quality rather than hindering it. That said, everyone seems to love them so they must have some value. Ellie Eleanor McHugh Games With Brains http://slides.games-with-brains.net ---- raise ArgumentError unless @reality.responds_to? :reason