• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Agile Buddha

Demystifying Agile, Getting to its Core

  • Our Blog – Agile Buddha
  • Agile Workshops and Certifications
  • Agile Commune – Join Here!
  • Webinars
  • Contact
  • About Us
  • Show Search
Hide Search

When BDD (Behaviour Driven Development) may not work?

by ShriKant Vashishtha 6 Comments

For quite some time there have been talks on using BDD in order to have:
  1. Better collaboration between Business Analysts (BAs), developers and testers.
  2. A common domain language for functional testing and for defining functional acceptance criteria, which everybody in the team understands.

Why BDD?

BDD offers following advantages:

  • Ability to write test cases (scenarios) and acceptance criteria before performing any development. This whole idea is termed as Acceptance Test Driven Development (ATDD).
  • Provides a common domain language, which everybody across the board (developer, tester, BA and business) understands. As at the end it’s plain English, it’s simplest to learn compared to other DSLs (domain specific languages).BDD example
    bdd-sample
  • Helps in eliminating waste by minimizing handshakes. If you take a look at the above-mentioned example, testers and BAs can write a test or acceptance scenario using a BDD template (highlighted in Yellow) with plane English

Developer/tester can then fill in the blanks, i.e. implement the test case using programming language or script.

Writing text doesn’t require any IDE like Visual Studio or Eclipse. The test/acceptance scenario can be written in a Notepad too and then pushed to Version Control System, which is then picked up by developers/testers to implement.

As BAs, developers and testers work only one single source of truth (BDD test), it minimizes the handshakes and reduces waste. Also it is well understood by everyone as test-scenario is in plain English.

Some reasons why BDD may not work

Non-working of BDD has nothing to do with technology itself but has a lot to do with eco-system around. Here are some of those reasons:

breaking-the-silos

Legacy silos in the team

Many a times, when teams move from waterfall to Agile, team structures continue to remain the same. So for instance testers are managed by a testing head, BAs are managed by similar kind of hierarchy etc. Even though they start working in Agile projects, as part of age-old waterfall legacy, they still continue to work in silos and don’t collaborate. BDD is useful when the testing is not the responsibility of just testers. A domain test language like English based tests are useful when people in business, Business Analysts and developers contribute and collaborate in defining, creating and maintaining these functional test cases. If nobody else other than testers reads them, BDD looks like extra overhead to testing community.

Maintenance doesn’t get enough support

This point is applicable to all automated functional test cases. In some organizations, money is pumped to new greenfield initiatives or new projects. And projects in maintenance may lack required resources. In the absence of required attention, automated tests break and if nobody fixes them they are not maintained further. Teams just get away with fixing issues with manual testing and in that way allow software debt to prosper.

BDD requires scripting skills

Scripting or some coding skills are basic foundation for new-age test automation. For many organizations moving to scripting is not a big deal but for many other bigger organizations it is. The reason being, 90% of their testers know manual testing only and have been doing so for last 20 odd years. For these organizations, asking their testers to learn coding or scripting skills or else leave, may be a tough and steep strategic decision. For the same very reason, they prefer scripless but expensive test automation tooling.

Agile Testing, Testing BDD, Behaviour Driven Development, Why not BDD

Reader Interactions

Comments

  1. Vincent Brouillet says

    at

    headline has a dodgy grammar: “Maintenance doesn’t enough support” 😉

    Reply
  2. Shrikant Vashishtha says

    at

    Fixed. Thanks.

    Reply
  3. Bart says

    at

    I’d change the example. Why would you include “click submit link” in a scenario describing behavior of a product feature? You’re coupling your scenarios to implementation details why in fact you should stay focused on business. Wouldn’t “when report gets submitted” worked better?

    Reply
  4. Shrikant Vashishtha says

    at

    Agreed Bart. Thanks for your comment.

    Reply
  5. Bhavini says

    at

    For BDD to work properly we should follow Test driven development.

    Reply
  6. Kranti Madineni says

    at

    Excellent …Your articles are very nice…

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

LikeBox

Tags

5 Whys Acceptance Criteria Adoption agile Agile Culture Agile Estimation Agile Offshore Agile Teams agile testing Agile Thinking Agile Transformation Agility Appraisals ATDD Automation Backlog Grooming BDD Big Picture business analyst Capacity Planning case-study code quality Collaboration Daily Scrum DevOps distributed agile Distributed Scrum Estimation Good Practices kanban kanban-mythbusters lean Metrics Planning Poker Prioritisation product owner Scrum ScrumMaster Sprint Sprint Demo Sprint Retrospective Story Point Story Points Sustainable Pace User Story

Categories

  • Agile
  • Agile Leadership
  • Agile Testing
  • Agile Transformation
  • ATDD
  • BDD
  • Continuous Inspection
  • Culture
  • DevOps
  • Distributed Agile
  • Estimation
  • In Conversation with Tim Ottinger
  • Java
  • Jira
  • Kanban
  • Lean
  • noprojects
  • Patterns
  • Presentation
  • Product Owner
  • Scaled Agile
  • Scrum
  • Software Metrics
  • Testing
  • Testing Practices
  • User Story

Copyright © 2025 · Malonus Consulting LLP

  • Email
  • LinkedIn
  • Twitter
  • Facebook
  • Privacy Policy