DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. Behavior-Driven Development: The Origins

Behavior-Driven Development: The Origins

In this article, we take a quick look back through the history of BDD, and explore the holes in Specification by Example and Test-Driven Development it was meant to fill.

Jessica Wanivenhaus user avatar by
Jessica Wanivenhaus
·
Oct. 05, 17 · Analysis
Like (9)
Save
Tweet
Share
5.18K Views

Join the DZone community and get the full member experience.

Join For Free

What do you remember from the 1990s? The launch of the Hubble Space Telescope, when Dolly the Sheep was cloned, or perhaps even when Google began indexing the World Wide Web. During that decade, another term also started floating around: Specification by Example.

“We use realistic examples as a single source of truth for requirements and automated tests on software projects” – Ward Cunningham, A Pattern Language of Competitive Development (1996)

Specification by Example was a breakthrough because it allowed for a more precise method of describing and defining requirements. Testers and developers were able to extract information about requirements through concrete examples rather than abstract specifications. It also provided a new method of helping requirements seem more business readable and better defined.

As the world of software began to advance at a rapid pace and Specification by Example became increasingly diffuse, Test-Driven Development (TDD) coined by Kent Beck was introduced. The popularity of TDD set the tone of what was missing in the marketplace. It was completely driven by technology and was more of a programmer’s discipline rather than that of a tester’s – however, it was also missing a high level and business readable aspect. In 2006, Dan North introduced Behavior-Driven Development (BDD) to fill this void by placing specification on a business level – not through code, but business behavior.*

Fast forward to present day: Agile teams love how BDD allows them to create living documentation that is easy to maintain and can be consumed by all team members, including testers, developers, and product owners. Moreover, tools like Cucumber can leverage BDD scenarios for automated acceptance testing. So why are 80% of BDD projects failing?

In Tricentis Founder Wolfgang Platz’s recent webinar, 'BDD Goes Enterprise',  he explains the issues that surround adopting BDD, including when purely open source BDD approaches fall short and elaborating on strategies that can help enterprises scale BDD.  

*Dan North, INTRODUCING BDD

Behavior-driven development

Published at DZone with permission of Jessica Wanivenhaus, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • How To Create and Edit Excel XLSX Documents in Java
  • Top Five Tools for AI-based Test Automation
  • Stream Processing vs. Batch Processing: What to Know
  • AWS Cloud Migration: Best Practices and Pitfalls to Avoid

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: