Saturday, October 12, 2019

Behavior-Driven Development Framework



Behavior-Driven Development (BDD)


Image result for bdd testing

According to BDD Framework creator Dan North: BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.

Behavior-driven development (BDD) 
Is an Agile software development process that encourages collaboration among developers, QA and non-technical or business participants in a software project.  It encourages teams to use conversation and concrete examples to formalize a shared understanding of how the application should behave. Behavior-driven development combines the general techniques and principles 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.

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. Test scripts have long been a popular application of DSLs with varying degrees of sophistication. BDD is considered an effective technical practice especially when the "problem space" of the business problem to solve is complex.
It is an extension of test-driven development:  development that makes use of a simple, domain-specific scripting language. These DSLs convert structured natural language statements into executable tests. The result is a closer relationship to acceptance criteria for a given function and the tests used to validate that functionality. As such it is a natural extension of TDD testing in general.

BDD focuses on:
  •         Where to start in the process
  •         What to test and what not to test
  •         How much to test in one go
  •         What to call the tests
  •         How to understand why a test fails

BDD is about rethinking the approach to unit testing and acceptance testing in order to avoid issues that naturally arise.  many people developed BDD frameworks over a period of years, finally framing it as a communication and collaboration framework for developers, QA and non-technical or business participants in a software project.

Ref: Wikipedia

No comments:

Post a Comment

WebService, API and their Difference

Web service (WS) A service offered by an electronic device to another electronic device, communicating with each other via the World W...