BDD or Behavior Driven Development
is one of the most important development approaches in the field of software
engineering and is just a modified implementation of the TDD or test driven
development. It actually combines the guiding principles and general techniques
of the test driven development with the combined ideas from two sources namely:
- Domain – driven
design
- Object – oriented
analysis and design
- The behavior driven development thus
provides a shared process and tools to business analysts and software
developers for their collaboration on the software development process.
- Ideally, behavior driven development represents an idea regarding the management of the
software development process by both technical sight and business interests.
- It
is assumed in this approach that the specialized software tools are being used to
provide support to the development process.
- The specialized tools thus involved
have been developed especially to be used in projects following the BDD
approach.
- They can be considered as special tools that supports test driven
development.
- The primary purpose of these tools is to automate the ubiquitous
language statements around which the BDD process is centralized.
- Agile software
development gets successful only when it is considered from the beginning.
- On
the contrast, in some projects this is the last thing to be considered which
means that there is no sustainable operation in the websites that serve purposes
other than blogging.
- A blogging web site is just a software that is just
modified by the users as it is ready for use.
- However, BDD and TDD provides the
only ways for achieving this goal.
- The word ‘driven’ in TDD signifies that the
test cases are written first and then the code for passing the test.
- TDD is
actually a low level methodology of accomplishing tasks and is sort of
developer oriented.
- On the other hand in
BDD, the description of the tests is written in a natural language, thus making
the tests more accessible to people outside the development team.
- Such
descriptions can describe the functionality in the same way as done by the
specifications.
Dan North was the person who actually brought the concept of
behavior driven development in response to the issues experienced in implementing
the test driven development such as:
- From where to start
testing?
- What is to be
tested?
- How much should be
tested in one turn?
- How the reason for
the failure of the test is to be understood?
- At the heart of the behavior driven
development approach lies the approach to acceptance testing and unit testing
which were again identified by North.
- He emphasized that the acceptance tests
should be written using the user story frame work.
- Thus starting from the
scratch, the development of the BDD approach continued over a couple of years
and finally we have it as a communication and collaboration framework.
- It has
been designed especially for the QA people and business participants involved
in a project.
- The agile specifications, BDD and testing eXchange meet highlighted
the following characteristics of BDD:
- Second generation
methodology
- Outside – in
approach
- Pull based
- Multiple stake
holder support
- Multiple scale
generation
- High automation
process
- Agile methodology
- Further, it was said that it involves
a cycle of interactions with outputs that are well defined and results in
delivery of working software that makes sense. - First, BDD frame work that came
in to existence was Jbehave which was followed by Rbehave–a story level BDD
ruby frame work.
- All these frameworks were later replaced by cucumber testing
tool. It was developed by Aslak Hellesoy.
No comments:
Post a Comment