| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

BDD

Page history last edited by Michael Ibarra 12 years, 11 months ago

These are the unfiltered notes taken during the session and represent a variety of opinions expressed during the session.

 

What's the difference between BDD and TDD

  • Is BDD just "hyper-tdd?"
  • Complementary to each other.

 

Two main syntax "flavors"

  • Context / Specification - rSpec model
  • Given/When/Then - Gerkin model

 

Context / Spec

  • Define your context (example: purchasing from a vending machine)
  • As new cases are discovered, contexts build in complexity (vending machine is empty, etc)
  • More complex context (classes) inherit from simpler, parent contexts.
  • Difficulty working with Tabular Data

 

Given / When / Then

  • Focuses on composing contexts vs inheriting
  • Helps re-using context and features

 

Either / Or (Suitability for purpose)

  • "Conventional Wisdom": Gerkin model works best for integration-style tests while Rspec model works best for unit style tests.
  • Not all agree
    • Statement was result of "truce" between Dave Astels and Dan North over competing ideas.

 

Objections over usefulness of BDD / BDD Tools as a whole 

  • Converting plain text to executable specs is a barrier.
    • Becomes a User Interface for end users over the code.
  • Users don't appreciate text specifications
  • Provides extra overhead / useless artifacts
  • It's good design that makes things work well, not tools
  • "Favor Individuals and Interactions over Tools and Processes" - Agile Manifesto 
  • Testing is NOT the users' job. Neither is reading volumes of text specifications. 
  • User Stories don't belong in a programming tool. 

Warnings

  • Don't mistake the value sought from using the tools for the tools themselves
  • Text specification is good only for things that require extreme specificity 
  • Avoid the Cargo Cult mentality of using for the sake of using.

 

Other Notes:

  • One of the goals of Agile is to shorten the feedback loop(s) from inception to release
  • Research -> Analysis ->Design ->Code ->Test 
    • Test-First shortens the C->T cycle
    • TDD shortens the D->C->T cycle
    • BDD shortens the A->D->C->T cycle
    • Lean Startup shortens the R->A->D->C->T cycle
  • You should be sure to be VERY familiar with your disciplines before you decide to experiment with NOT using them. 

Comments (0)

You don't have permission to comment on this page.