Jenk wrote:Do you even bother to read? I am absolutely dumbfounded that you still state they are different. The creator of BDD himself says BDD = TDD, yet you still say they are different. Unbelievable.
I don't like to read, that which doesn't make sense.
They may promote the same best practices (thus if your doing TDD well, your already doing BDD) however...I think the similarities stop there. If they are so alike, why then, did the originators decide to introduce yet another method?
TDD done right is BDD...I can see that...but what about differences like concept of programming to a specification? Assertions, etc?
I see BDD as being the more polished of the two. Promoting a more abstract method of accomplishing the same task - thus it's improved and not the same.
When you write code in C and then do the exact same thing using C++ but you follow the same best practices, technically you may accomplish the same thing, but the approach is radically different, is it not???
Even though the founding members might suggest they are the same, it is nothing more than a sales technique to get more people to jump on the bandwagon.
If he said
"It's drastically different in every possible way but it's better" or
"If your already doing TDD well, you are essentially doing BDD" which do you think works better in getting peoples interest?
Similar arguments were used when C++ was introduced:
Wikipedia:
http://en.wikipedia.org/wiki/C%2B%2B
Dr. Bjarne Stroustrup developed C++ in 1979 at Bell Labs as an enhancement to the C programming language and named it "C with Classes".
The gist of the idea is the same...don't stray to far from what is already known, otherwise no one will adopt.
While you can perhaps accomplish the same result with SimpleTest and TDD practices, why would frameworks like PHPSpec be developed if you could already achieve *exactly* the same thing using the former? Because there are differences and BDD is the *next* step not the *same* step.
I suppose if you look at TDD and BDD from a strictly "practices" perspective...yes...well done TDD is BDD...but are they not more than just practices? Is it not about concept, philosophy and formalities as well?
Is it not the concept of programming to a specification that distinguishes BDD from TDD? As I am sure you are aware the word "test" is frowned upon in BDD community. I believe Dave himself tells an attendee (during that Google techtalk video) that exact same thing. call them specs not tests - test promote a less natural approach. This is a philosophical difference, but is it not a difference, and a reason to introduce "yet another" method or approach and not just call it TDD???
When you use a BDD framework like PHPSpec and you see technical/formal difference, such as the absence of assertions...is this not a difference as well? I realize that the framework is not tied to BDD but rather it's the other way around. The point is, a framework like PHPSpec promotes BDD not TDD, so in my opinion, there lies another difference.
So again, personally I consider TDD and BDD as differrent. For me personally, I see them as a collection of best practices, but also, concepts, philosophy and even more tangible technicalities.
I guess I'm just more pedantic about details, so sue me, but don't call me down and tell me I'm wrong when all you can do is quote the original authors sales pitch.
That is not what I call constructive feedback, but rather, one's personal opinion skewing the original question.
I seen this coming, as usual on this forum when opinions collide. I hope I made my point clear and we can stop this petty argument. The differences I see between BDD and TDD are important to me (again, I'm anal about details) but arguing whether my opinion is right and yours is wrong, for me personally, is moot. It benefits no one. The only reason I have persisted this far, is because I am human and your last reply was bold and I have my pride to protect.
So, I'm taking my ball and I'm going home.
Cheers
