Talk:Behavior-driven development

Use British English spelling for BDD
In the "Introducing BDD" article the term is coined as "behaviour-driven development". The rest of the article seems to be in American English, but the term should always be in British English according to Manual of style. Spur (talk) 01:43, 4 July 2012 (UTC)

Lack of information
I was about to add my humble opinion about this article, but I see from the "Talk" here that many people agree that the article is rather meaningless. Or maybe the subject (BDD) is meaningless and vague. How about "BDD is just having the testers talk to the users..." I need to know what BDD is because I am about to go on a job interview and BDD is one of the requirements. --25 July 2019

Let's talk about it before speedily deleting this article again... I'm sorry the first version was so information free... I just wanted to create a space to discuss the topic.

I've updated the article. Maybe the context message can go now.

The message can't go! The article, especially the beginning, is in terrible condition. --Mislav 22:04, 12 October 2006 (UTC)

So, I just made some massive changes to this. Mostly it's based on Dan's stuff, together with some things from my blog and the XP list on Yahoo, that I know he's agreed with. Will add some in-text citations as soon as I have time.

Hope this serves as a good base for further edits!

Featheredwings (talk) 09:27, 18 February 2008 (UTC)

Dave Astels
Dave Astels also influences BDD. See his ideas and framework (at the moment in Ruby) in this video: Beyond Test Driven Development - Behaviour Driven Development ( 302 MB, 47:40 min ) Google TechTalks March 17, 2006. --Erkan Yilmaz 20:31, 11 November 2006 (UTC)

I'm dubious about the accuracy of this article. Many of the things it says about BDD are things I thought were already true of test-driven development. Needs more cites. —Preceding unsigned comment added by 24.6.102.150 (talk • contribs) 01:02, 18 March 2007

What is the relationship with traditional specification as language (CLU, Eiffel)?
Consider representation invariants in a language such as CLU, or invariants in design-by-contract as in Eiffel.

These methods of development are similar to Behavior Driven Development. First one creates a specification for behavior, then the implementation of that behavior. The difference seems to be that there is less danger of destroying encapsulation when the specification is only for externally visible behavior. That is, the behavior of encapsulated details should be private, and should not require making those details public.

Has anyone written about the parallel between classic "executable specification" and Behavior Driven Development? Should something go in this article? --Frank Hileman 22:14, 26 September 2007 (UTC)

What about the Program Document Language (PDL) that was popular in the 1980'sSwgmk (talk) 22:53, 14 April 2018 (UTC)

Ubiquitous Language
I'm not clear on the relationship to the ubiquitous language. Is BDD forming a ubiquitous language for testing or if you are practicing DDD with BDD is the ubiquitous language used in the tests? —Preceding unsigned comment added by 82.41.217.214 (talk) 21:46, 20 February 2008 (UTC)

A team should use the same verbiage for the same things - from the database to the view to the verbal conversations - following their client's lead with domain-specific jargon. That is ubiquitous language, and storytests are just one layer that should reinforce this vocabulary. —Preceding unsigned comment added by 98.175.108.199 (talk) 01:34, 9 March 2010 (UTC)

Seems to me that an explicit requirement to include a clear VERB-OBJECT structure in the descriptions would be helpful in ensuring it is clear what process is being done to what entity. — Preceding unsigned comment added by Lucchase (talk • contribs) 18:37, 22 August 2013 (UTC)

How does this differ from TDD?
I'm not sure what the difference is between this and TDD. Can an expert add a section please 86.54.187.18 (talk) 16:31, 21 January 2009 (UTC) In fact it feels a bit like Dan North's take on TDD. —Preceding unsigned comment added by 86.54.187.18 (talk) 16:33, 21 January 2009 (UTC)

answered in the current version - it's TDD written in client-readable prose. See "literate programming" —Preceding unsigned comment added by 98.175.108.199 (talk) 01:36, 9 March 2010 (UTC)

Rename as "Behavior-driven development"?

 * The following discussion is an archived discussion of a requested move. Please do not modify it. Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section. 

The result of the move request was: moved. Unopposed for a week and appears to be in line with WP:CAPS, WP:HYPHEN and other related articles. Jenks24 (talk) 10:05, 25 June 2012 (UTC)

Behavior Driven Development → Behavior-driven development – Test-driven development has set a precedent (I think). Other articles in Category:Software development philosophies that are not book titles follow WP:LOWERCASE. This page should follow that form and be named Behavior-driven development. --DavidBiesack (talk) 13:29, 18 June 2012 (UTC)
 * The above discussion is preserved as an archive of a requested move. Please do not modify it. Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.

Gherkin is no longer specific to Cucumber
It was originated by Cucumber, and the argument could certainly be made that it is still primarily used for Cucumber, but the Gherkin project's own wiki specifies that it feeds / is supported by a fairly wide set of other languages and tools.

Given that, should there be a sentence specifically and explicitly mentioning that it is exclusive to Cucumber? See here for more details: https://github.com/cucumber/gherkin/wiki/Tool-Support — Preceding unsigned comment added by 84.246.168.11 (talk) 16:44, 25 April 2013 (UTC)

Meaningless and imprecise phrasing
I understand the whole Agile movement is very wishy-washy and full-to-bursting with buzzword-touting consultants. Does this article really have to be similarly devoid of information and specificity? — Preceding unsigned comment added by 82.9.176.129 (talk) 18:27, 10 August 2013 (UTC)

Here we are 2018 and the text is still imprecise. Second paragraph should be removed and the rest of the introduction re-written.--Charrua85 (talk) 11:22, 5 January 2018 (UTC)

TDD wrongly represented?
The article has it that "TDD essentially states ...: define a test set ... first; then implement the unit; finally verify that ... the tests succeed."

My understanding of TDD is that a), contrary to the above, each test is to be specified separately, immediately followed by implementation of what is in scope of the test and verification of the outcome; and b) this way of working is the essence (!) of TDD.

Does anyone object to changing this to represent TDD better, do you feel that saying "essentially states" prevents this from being an oversimplification? Oliver Gramberg (talk) 08:09, 27 February 2014 (UTC)


 * IMO, unless there's real value to define TDD in this article, just reference the TDD article. DRY Stevebroshar (talk) 14:13, 16 April 2024 (UTC)

Business and Stakeholder driven via User Stories / BDD useful only for high-level business domain logic?
Reading the article it suggests that the key drivers for BDD are the stakeholders but typically they are totally clueless about everything outside the business domain. For example if you want to use TDD on non-business domain units such as form or graphics composition libraries interopability libraries import export libraries application frameworks or pretty much any other component developed that is generic enough to satisfy a projects architecture - why would you even want to come up with a convaluted warping of a user story to somehow justify reading or writing a byte of data somewhere or another? ZhuLien 66.249.80.203 (talk) 16:13, 5 March 2014 (UTC)
 * Indeed, the approach explained in the main article lacks sections on its scope, criticism. Can the approach itself be falsified to show its limits?  If this concern is disregarded by the proponents of BDD, they look more like prophets than scientists. --ilgiz (talk) 09:51, 29 February 2020 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 1 one external link on Behavior-driven development. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20150919215413/http://behat.readthedocs.org:80/en/v3.0/guides/1.gherkin.html to http://behat.readthedocs.org/en/v3.0/guides/1.gherkin.html

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 22:30, 29 October 2016 (UTC)

External links section moved from article
In case there's something here that could be used for content verification or expansion: --Ronz (talk) 18:49, 19 January 2017 (UTC)
 * JBehave
 * RBehave
 * Dan North's article introducing BDD
 * Getting Started with Behavior Driven Development (BDD) - Part 1
 * Say Hello To Behavior Driven Development (BDD)- Part 1
 * Say Hello To Behavior Driven Development (BDD)- Part 2
 * Behavior Driven Development Using Ruby (Part 1)
 * Behavior-Driven Development Using Ruby (Part 2)
 * In pursuit of code quality: Adventures in behavior-driven development by Andrew Glover
 * The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends
 * ScalaTest: Tests as specifications
 * Unit test JavaScript applications with Jasmine (including behavior-driven development)
 * Chai BDD/TDD Javascript Library Assertion Styles
 * Choosing a BDD framework for .NET
 * Using Keywords to Support Behavior Driven Development by Hans Buwalda
 * Software Test Engineering using ADTF — Preceding unsigned comment added by Locke2002 (talk • contribs) 20:59, 22 May 2018 (UTC)

Shouldn't it be told that there are essentially two levels for BDD?
Like the title says, there are two levels of BDD:


 * 1) Acceptance Testing => Something like Cucumber and JBehavior
 * 2) Unit Testing => Something like RSpec.

And they both have different terms that one should use... Maybe this article should be changed to reflect that. 2001:8A0:7F0F:3601:899C:15B8:A86A:4242 (talk) 15:25, 14 August 2017 (UTC)

"SHE QC" and "The Three Amigos"
I have removed the recent addition of "SHE QC" as new technique. First of all, the edit seems to be in violation of our "conflict of interest" guideline at WP:COI. Such edits should generally be suggested on article talk by interested COI editors. Secondly, conference schedules and course summaries are not independent reliable sources. To establish the relevance of this new technique, someone else besides its inventor should have written about it in some detail. Wikipedia is an encyclopedia and covers established knowledge, not every minor new development or recent research that hasn't been widely discussed yet in other reliable publications. I have left the "The Three Amigos" part in for now, although the sources for these paragraphs are also relatively thin and/or not fully independent. Please discuss the removed content and the suitability of the remaining content here, if needed. GermanJoe (talk) 14:18, 3 June 2019 (UTC)
 * I removed it again, sharing the same concerns.
 * I removed the Example Mapping section for the same reasons. It's not clear mention is WP:DUE even if it was rewritten to not be promotional. --Ronz (talk) 03:31, 14 August 2019 (UTC)

Why does this read like an advertisement?
This article has a huge slant. Instead of a description of BDD,the what, where, when, why. It reads like Ron Popeil trying to sell you something. 6cadc1f740 (talk) 14:59, 23 January 2024 (UTC)


 * Why? Human nature. ... I assume you are suggesting it shouldn't have that slant. Rather than complaining about the content I suggest you improve it. ... I think the lead defines BDD with what are purported benefits. I think the lead should be re-written to say what it is and then later to list the pluses as described by supporters. In particular, the last lead paragraph, "BDD is largely facilitated through the use of a simple domain-specific language (DSL) using natural-language constructs (e.g., English-like sentences) that can express the behaviour and the expected outcomes" is a good start for a definition. Stevebroshar (talk) 14:25, 16 April 2024 (UTC)