What is BDD? What is its difference from TDD?

What is BDD and what is its difference from TDD?

Author: nick_gabpe, 2017-04-18

3 answers

BDD-behavior-driven development is behavior-driven development. That is, there is a special person (or people) who writes descriptions like " I as a user want when pressed the start button then the menu was shown as in the picture". (there are specially highlighted keywords there). Programmers have long written special tools (for example, cucumber), which translate such descriptions into tests (sometimes completely transparent to the programmer). then the classic development with tests.

What is the advantage of BDD?

  • tests readable for non-programmers.
  • they are easy to change. They are often written in almost pure English.
  • they can now be written by the product owner or other interested parties.
  • the test results are more "human".
  • tests are independent of the target programming language. Migration to another language is strong simplified.

(the word tests is not selected by chance, because now tests are both descriptions and their implementation directly.)

 16
Author: KoVadim, 2017-04-18 07:37:46

BDD frameworks

  1. increase test development time as new dependencies are added
  2. make it harder to support tests, as there are now more abstraction levels to support
  3. No business analysts can write BDD tests because

    • first, they just won't do it and
    • secondly, you can't just write a free-form test in English and everything will work. You must strictly follow the syntax and you need to know all the keywords and in what order they will work. And it is necessary to lure actions to these keywords on some YAP

Thus, all the advantages promoted by BDD frameworks such as writing tests in natural language by non-technical people are not applicable in reality.

 9
Author: Никита Гавриш, 2018-09-01 13:13:53

Please do not minusovat much, below-a joke:

BDD - bug-driven development, bug-driven development. When a new feature is invented, the decomposition is done, and immediately for testing. The tests do not pass (because no one has implemented anything yet), and bugs are started. The team starts fixing bugs, closing the functionality.

 2
Author: Alexander Brattsev, 2019-07-22 15:29:05