I recently received an insightful email from Jose Samonte asking for resources on Behavior-Driven Development (BDD) and where to start learning about it. Given the depth of my own journey with BDD, I thought I’d share my experiences and recommendations publicly.
Start Here
My introduction to BDD began with a blog post by Dan North: Introducing BDD. This post provides a solid foundation on the origins and principles of BDD. For further reading, Dan’s article “What’s in a Story” is also highly recommended as it delves into the concept of user stories in BDD.
Learn from Others
Much of the early work in BDD was done on platforms other than .NET, particularly in the Ruby and Java communities. Here are some key resources that have been instrumental in my understanding:
- The RSpec Book: This book offers an introduction to BDD within the Ruby ecosystem and also covers Cucumber, a tool influential in BDD practices. SpecFlow is a .NET adaptation of Cucumber.
- Cucumber’s Official Site: Contains a wealth of information, including webcasts and articles. Cuke TV is particularly useful.
Casts and Posts
Here are additional resources that have contributed to my BDD knowledge:
- Growing Object-Oriented Systems Guided by Tests (GOOS): This book is a cornerstone in understanding test-driven development and BDD.
- Rob Conery’s SpecFlow Webcast: Offers a practical overview of using SpecFlow for BDD.
- Steven Sanderson’s Blog Post: An insightful post on implementing BDD with SpecFlow and ASP.NET MVC.
- Gherkin Language Wiki: A comprehensive resource on the Gherkin language used by Cucumber.
- Gojko Adzic’s Site: Rich in articles and resources related to BDD and its practices.
- SpecFlow Source Code on GitHub: Reviewing and contributing to the SpecFlow source code, especially the FeatureTests, can provide practical insights.
While this list may seem SpecFlow-centric, it reflects my personal journey with BDD. However, there are other tools available, such as Raconteur, which you might find interesting as well.
If you have any additional recommendations or resources, please share them. Jose, I hope this information proves helpful and thanks for prompting this reflection.