Behavior-driven development

Behavior-driven development (BDD) involves naming software tests using domain language to describe the behavior of the code.

BDD involves use of a domain-specific language (DSL) using natural-language constructs (e.g., English-like sentences) that can express the behavior and the expected outcomes.

Proponents claim it encourages collaboration among developers, quality assurance experts, and customer representatives in a software project.[1][2] It encourages teams to use conversation and concrete examples to formalize a shared understanding of how the application should behave.[3] BDD is considered an effective practice especially when the problem space is complex.[4]

BDD is considered a refinement of test-driven development (TDD).[1][5][6][vague][7] [8] BDD combines the techniques of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.[1][7]

At a high level, BDD is an idea about how software development should be managed by both business interests and technical insight. Its practice involves use of specialized tools.[5] Some tools specifically for BDD can be used for TDD. The tools automate the ubiquitous language.

  1. ^ a b c "Behaviour-Driven Development". Archived from the original on 1 September 2015. Retrieved 12 August 2012.
  2. ^ Keogh, Liz (2009-09-07). "Introduction to Behavior-Driven Development". SkillsMatterr. Archived from the original on 2021-02-25. Retrieved 1 May 2019.
  3. ^ John Ferguson Smart (2014). BDD in Action: Behavior-Driven Development for the Whole Software Lifecycle. Manning Publications. ISBN 9781617291654.
  4. ^ Tharayil, Ranjith (15 February 2016). "Behavior-Driven Development: Simplifying the Complex Problem Space". SolutionsIQ. Retrieved 15 February 2018.
  5. ^ a b Haring, Ronald (February 2011). de Ruiter, Robert (ed.). "Behavior Driven development: Beter dan Test Driven Development". Java Magazine (in Dutch) (1). Veen Magazines: 14–17. ISSN 1571-6236.
  6. ^ Solis, Carlos; Wang, Xiaofeng (2011). "A Study of the Characteristics of Behaviour Driven Development". 2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications. pp. 383–387. doi:10.1109/SEAA.2011.76. hdl:10344/1256. ISBN 978-1-4577-1027-8. S2CID 3392536.
  7. ^ a b Bellware, Scott (June 2008). "Behavior-Driven Development". Code Magazine. Archived from the original on 12 July 2012. Retrieved 1 May 2019.
  8. ^ Liz Keogh (June 27, 2011). "ATDD vs. BDD, and a potted history of some related stuff". Retrieved 6 May 2019.