bdd all the way down slides - megakemp.com
TRANSCRIPT
![Page 1: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/1.jpg)
Enrico Campidoglio
BDDall the way down
@ecampidoglio
![Page 2: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/2.jpg)
How to apply the principles and techniques of Behavior Driven Development
in practice while using .NET
![Page 3: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/3.jpg)
By implementing the first rule ofConway’s Game of Life as a web API
using .NET and C#
![Page 4: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/4.jpg)
Conway’s Game of Life
An implementation of Conway’s Game of Life as a web app built in .NET
![Page 5: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/5.jpg)
BDD is a software development technique that evolves from TDD and aims to bridge the gap between business stakeholders
and programmers.
What is BDD?
![Page 6: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/6.jpg)
![Page 7: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/7.jpg)
Because TDD doesn’t say where to start, what to test, how the tests should be named
and understand why they fail.
Why?
![Page 8: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/8.jpg)
Because everyone in the team needs a common language to understand each other
about the requirements of the software.
and...
![Page 9: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/9.jpg)
How?
![Page 10: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/10.jpg)
Build or Grow?
![Page 11: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/11.jpg)
![Page 12: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/12.jpg)
![Page 13: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/13.jpg)
We grow the system incrementally from performing simple end-to-end functions
to more complex ones while keeping everything working.
![Page 14: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/14.jpg)
The thinnest slice of functionality thatcan be implemented while setting up
the necessary infrastructure that enables the system to grow.
The Walking Skeleton
![Page 15: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/15.jpg)
Write����������� ������������������ a����������� ������������������ failing����������� ������������������ end-to-end����������� ������������������ test
Write����������� ������������������ a����������� ������������������ failing����������� ������������������ unit����������� ������������������ test
Make����������� ������������������ thetest����������� ������������������ pass
Refactor
The Development Cycle
![Page 16: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/16.jpg)
TakeawaysFocus on the expected behavior of the system in a given scenario
Define a common vocabulary for the project’s domain
Name your tests as phrases the read like specifications
![Page 17: BDD All the Way Down Slides - megakemp.com](https://reader031.vdocuments.mx/reader031/viewer/2022013005/61cd4fe9dc15e414330b6749/html5/thumbnails/17.jpg)
Learn moreIntroducing BDD by Dan North http://bit.ly/bddintro
Growing Object-Oriented Software Guided by Tests http://bit.ly/goosbook
Demo: Conway’s Game of Life http://bit.ly/bddgameoflife !