BDD - alexdaube/My-Software-Engineering-Guide GitHub Wiki

Behaviour Driven Development(BDD)

requirements in a testable way

  • To understand client's needs
  • To communicate the needs
  • to collaborate with the help of examples
  • To produce something of value
  • Uses natural language

A good Acceptation Test

  • Client's view
  • High level
  • Uses Domain Specific languages (DSL)
  • Short and sweet
  • Easy to maintain
  • Up to date

Each acceptation criteria is translated to at least on test case

How?

  • Given, When, Then
  • Emphasize on the behaviour
  • Concret but more general
  • Declarative over imperative
  • As abstract as possible. Should only express the essential
  • No Markup (Css, HTML)
  • Test cases should not need to change if the internal code is changed

Used in the ATDD