Behaviour Driven Development (BDD) is a set of practices and tools that enables business analysts, developers and testers to collaborate on a single source of truth: Executable Specifications.

Executable Specifications are living documents that serve several purposes.

  • For business analysts they are a concise way to express how they want the software to behave
  • For developers they are unambiguous requirements that guide and validate the implementation
  • For testers they are automated regression tests

Executable Specifications are easy to read by both humans and computers. They are great for building a shared understanding across different roles on a software project. This shifts the focus from finding bugs to preventing them.

Product owners and business analysts are encouraged to join this session even though the second half will involve a little coding. Non-technical attendees will be paired up with technical attendees to create executable specifications together.

 
 

Outline/structure of the Session

The session consists of about 80% group exercises and 20% presentations, spread out across the day.

Overall agenda:

  • Brief (30 min) introduction to BDD
  • Presentation of the case (a social networking application)
  • Analyse stakeholders, differentiators and market value
  • Brainstorm user stories
  • Prioritise user stories
  • Break them down into rules and examples
  • Convert examples into Cucumber scenarios (executable specifications)
  • Implement logic, following the BDD process
  • Reflect and discuss

Learning Outcome

In this workshop you will learn:

  • What is BDD and why should I care?
  • Breaking down a user story into examples
  • Conversation patterns to create more and better examples
  • Turn those examples into executable specifications
  • Execute these specifications with Cucumber
  • Who does what and when (roles, responsibilities and timing on a BDD team)

Target Audience

Product owners, business analysts, developers and testers

Requirements

We need a room with cabaret or board room layout, since attendees will be working in groups.

Projector and flipboard.

Only half of the attendees need a laptop. People without a laptop will be paired with someone who has a laptop.

Laptops should have either Windows, OS X or Linux. They also need a text editor (Atom, Sublime Text or other), gcc (if on Linux or OS X) and Ruby 2.x.x. Windows users should install Ruby 2.0.0 (and make sure it's not the x64 build).

Alternatively the attendees can install the JDK, Maven and an IDE such as IntelliJ IDEA Comunity Edition.

schedule Submitted 2 years ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Jerry Rajamoney
    By Jerry Rajamoney  ~  2 years ago
    reply Reply

    Thanks for this proposal aslak. BDD is being talked by many these days. Do you expect the participants to have good knowledge of Cucumber?

    Thanks,

    • Aslak Hellesøy
      By Aslak Hellesøy  ~  2 years ago
      reply Reply

      Hi Jerry,

       

      No prior knowledge of Cucumber is required. The primary focus of the workshop is process, not tools.