Behavior-Driven Development (BDD)
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