28 | Testing communication
Explaining the terms:
Behaviour-Driven Development
Behaviour-Driven Development (or BDD) is an agile software development technique that seeks to encourage
collaboration between software developers, QA and the management or business participants in a software
project. Originally conceived in 2003 it was a response to Test Driven Development (TDD). The language and
interactions used in the process of software development are the focus of BDD. Behaviour-driven developers
use their native language in combination with the language of Domain Driven Design to describe the purpose
and benefit of their code, this allows the developers to focus on why the code should be created, rather than
the technical details, and minimises translation between the technical language in which the code is written
and the domain language spoken by the business, users, stakeholders, project management etc.
Test-Driven Development
Test-driven development (TDD) is a software development technique that uses short development iterations
based on pre-written test cases that define desired improvements or new functions. Each iteration produces
code necessary to pass that iteration's tests. Finally, the programmer or team refactors the code to
accommodate changes. A key TDD concept is that preparing tests before coding facilitates rapid feedback
changes. Note that test-driven development is a software design method, not merely a method of testing.
Domain-Driven Design
Domain-driven design (DDD) is an approach to the design of software, based on the two premises; firstly
that complex domain designs should be based on a model, and secondly that, for most software projects, the
primary focus should be on the domain and domain logic (as opposed to being the particular technology used ' 0 $ 6 4
to implement the system). The term was coined by Eric Evans in his book of the same title.
0 / : 0 6 3
Cucumber scenarios we use the language of which allow us to express data sets
Cucumber is a tool, written in Given/When/Then to describe the to be used in different runs of a
the Ruby programming language, behaviour. scenario. These Scenario tables were
* / % 6 4 5 3 :
which takes plain text feature Given – are used to set-up the state inspired from FIT (Framework for
documentation and makes them When – to perform some action Integrated Test) tables. These are
executable as tests. It can be used to and seen in frameworks such as Fitnesse.
‘test’ code written in Ruby or other Then – to test the expected These tables allow the customer
languages with the help of some outcomes. to communicate the expected
extra tools: output to us through concrete
"