An Ultimate Guide To BDD

preview_player
Показать описание
Behavior Driven Development (BDD) is widely misunderstood, so how does BDD work, what is BDD and why is it a useful technique?

BDD is more than just testing, it is a way to organise software development to better communicate what it is that we are all doing. BDD is more than just the use of tools like Cucumber and SpecFlow, though these tools are fine. It is about creating meaningful executable specifications of what our system should do. If you are asking for TDD vs BDD that are both complimentary, and sort of the same thing. BDD began as a way of explaining TDD so that people could get to the good stuff faster. In reality the behavioural focus at the heart of BDD is applicable at all resolutions of detail when it comes to creating effective tests that are not tightly-coupled to implementation detail.

In this episode Dave Farley, author of “Continuous Delivery” and “Modern Software Engineering” explores the how what and why of BDD.

-----------------------------------------------------------------------------------

⭐ PATREON:

Join the Continuous Delivery community and access extra perks & content!

-------------------------------------------------------------------------------------

🎓 Find my courses on Acceptance Testing, BDD & TDD, with a choice of courses that will fit in with your/your team's needs specifically.

-------------------------------------------------------------------------------------

🔗 LINKS:

-------------------------------------------------------------------------------------

📚 BOOKS:

and NOW as an AUDIOBOOK available on iTunes, Amazon and Audible.

📖 "Continuous Delivery Pipelines" by Dave Farley

NOTE: If you click on one of the Amazon Affiliate links and buy the book, Continuous Delivery Ltd. will get a small fee for the recommendation with NO increase in cost to you.

-------------------------------------------------------------------------------------

CHANNEL SPONSORS:

Рекомендации по теме
Комментарии
Автор

Master testing and become an expert in TDD, BDD & ATDD. This comprehensive course bundle gives you sought after skills, ready to tackle the modern world of software engineering 🚀


PAYMENT PLANS AVAILABLE TOO.

ContinuousDelivery
Автор

I've watched lots of videos (many from this channel), read lots of articles and even one book on BDD and TDD. This video did more to clarify for me what BDD and TDD are and how to best approach them than all the rest of my previous sources combined. It should be among the very first things people are presented with when being introduced to the topic!

shannondealy
Автор

14:54 This is so true. In my company, there is a saying: "The user does never know what he really wants, but he knows exactly what he doesn't want if he sees the result"

tweetymr
Автор

I got a 15k pay rise and i hold this channel responsible for my improvement in how I work.

jacktilley
Автор

Dave is The Goat. Not only for the content but for his clarity when presenting the topic.

guybrushthreepwood
Автор

Excellent video, Dave, especially the "reset" on the origins of TDD and BDD!!

daverooneyca
Автор

Thank you so much Dave Farley! Please consider releasing the Eastern Economy Versions of your courses. It would be really helpful. ❤

himansrivastava
Автор

This cuts straight to the essential nature of TDD in the most cogent and well-thought-out explanation I have seen to date. Well done!

Also...love the shirt! I think we need a link to the maker. :)

jeffreystacks
Автор

Fantastic video as always... If I can summarize what I got from this video into 2 thought chunks: 1. This approach is both a paradigm shift from developer-centric to user-centric, and 2. coding the tests to using the SOLID principles, i.e. particularly in the dependency control so that the Low-Level modules (the plumbing as you called it) depends on the High-Level modules, the beauty of this is when a vendor changes their implementation details, then only the LL modules will need to change, not the HL.

raymitchell
Автор

Love the BDD approach - easy to read for anyone, and the framework is so clear and organized.

softwaretestinglearninghub
Автор

I've also come to the realization that workflows or usecases are simple steps that can describe how the high level code can look like, like unit tests. Naming them sensibly will act as titles to chapters in the index of a book. A support library contains a glossary of functionality or behaviours that are used in those steps.
Discussing with a user what they want to accomplish is very helpful. It often comes with their own examples but has the danger of a dev taking it as the implementation goal. If you brainstorm a little and come up with something that rethinks the whole problem can also be a great tool to level up the work a user can accomplish.

imqqmi
Автор

Excellent video! You have an amazing way of explaining things that are easy to understand. A small suggestion would be to include more diverse set of examples. But really amazing job with this channel. Thank you!

RushiLadani
Автор

Thank you for this video Dave! I have been trying to sell my team on BDD over implementation tests and struggled to articulate myself well enough. You have done a great job of doing exactly that with demonstrations in this video!

SimonHeadley
Автор

Hey, I've been following for some time now and I do really enjoy your videos. I really liked about this one, that you showed the implementation of those concepts in code and would really like, if you could do that more in the future. Great work nevertheless and keep going :)

wackeyy
Автор

The thing with BDD frameworks is that readable specs are much more maintainable and less complex as outputs rather than inputs.

Write high-level tests using your ubiquitous domain language in a proper programming language. Have your test steps output the actions they take as structured logs. Throw together something that turns the logs in to some html and you've got a nice readable spec. If you have the logs output as baggage to OTel, with spans and traces injected into api calls by your tests, you can also get some really nice drill-down into test failures (and successes).

See also: Nat Pryce on domain driven testing.

lkyuvsad
Автор

Great topic as always! Would you touch on how monitoring/observability ties in to continuous delivery?

calvinsadewa
Автор

I love that software devs create an entire dictionary everytime they improve/create something. Same thing for BDD.

gimmedatcake
Автор

The most appealing points: focus on behavior, create an executable specification.

banatibor
Автор

What do you think about testing in frontend?
All the concepts like TDD, BDD, Unit test, Integration test or test strategies aplies the same way in the frontend?
Love your content and your channel!

ngr
Автор

Thank you, so clear and easy to understand.

mutsukira