[Summer, Stefan, Amalia, Ian, Sean]
Be cooler than your other programming friends
encourages simple designs and inspires confidence.
Kent Beck
Inputs // Outputs
BEHAVIOR DRIVEN DEVELOPMENT
A newer coding concept than TDD, and arguably the evolution.
In contrast to TDD, BDD is not directly concerned with the functionality of the actual code of the project. It instead asks the more fundamental question of what tests and coding actually need to be done at all.
It’s the step before TDD even happens, and thus BDD ensures that the TDD process is focused and on track.
🤔
Like TDD it tests that an objective has been completed, but instead of the literal validity of code, getting tests to pass requires that the code fulfills the final aim of the project.
⌨️ Given the customer has logged into their account
💰 They see an accurate representation of their current account X value
💸 When the customer transfers Y amount to their account
✅ Then the new current account balance should be X + Y
Wow. So glad you asked!
💣🔥🔥🔥🔥🔥
What's an example of the syntax?
It is a semantically accessible test that we can now write TDD tests and code to satisfy.
It provides an overarching structure that guides what TDD should be accomplishing.
✨⭐️🌏🚦✈️
Said in another way, desired behavior & specification is what drives our software development, not the other way around!
So you might ask, why do businesses use TDD?
Some key reasons for considering TDD are:
SOFTWARE ENGINEER ZULILY
What is ZuKeeper?
ZuKeeper
ZuKeeper = EVERYTHING at Zulily
ZUKEEPER
* I interviewed 3 software engineers & they all agree.
1 Test...2 Test... 90923872394 Test...
Filter()
Filter products that are not available in certain states
NEW FEATURE @ ZULILY
TEAM MENTALITY
Coworker: “first make the feature work. Then make it work well. And if you have time afterwards, write tests for it”.
friend: "we never have time"
Best Case Scenario For TDD To Work
1. understand all of the requirements of ZuKeeper
2. Not be bothered to make tests for all features at the company
3. Have a time machine to 2009
TL:DR