Why-is-bdd-misunderstood, by Nicholas Pufal and Juraci Vieira

Post on 05-Dec-2014

3.556 views 2 download

description

A lot of people complain about BDD. By taking a closer look at those complaints we realize that they start to reject BDD not because of its ideas, but because they try to solve all of their problems by installing a tool - and not really applying all of the concepts behind it. In an effort to avoid further confusion, we decided to present this talk which was followed by an article that had a very good impact, written for ThoughtWorks Insights: http://www.thoughtworks.com/insights/blog/3-misconceptions-about-bdd We hope this helps to let everyone on the same page when the subject is BDD.

Transcript of Why-is-bdd-misunderstood, by Nicholas Pufal and Juraci Vieira

*

Why BDD is misunderstood?

Nicholas PufalJuraci Vieira

Oct 2013

**

Agenda

Introduction(5 min)

Common complaints(10 min)

Real life example: NY investment bank(10 min)

What BDD is really about?(10 min)

Q&A (10 min)

**

"The definition of insanity is doing the same thing over and over again and

expecting different results."~ BROWN, RITA MAE

**

**

Let's start demystifying these complaints :)

**

Client doesn't care for testing

**

Client doesn’t care for testing That sentence is true for most of the

clients

**

Client doesn’t care for testing Remember, BDD has nothing to do

with testing

**

Client doesn’t want to write the specifications

**

Client doesn’t want to write the specifications He shouldn’t be allowed to write the

specifications by himself

**

Client doesn’t want to write the specifications

Client doesn't need to interact with the tool itself

**

You can achieve the same without a business

readable DSL

**

You can achieve the same without a business readable DSL

You can just use Capybara + RSpec

**

You can achieve the same without a business readable DSL

Would you compare a car to a duck?

**

Real life example: NY investment bank

**

Real life example: NY investment bank

•Specifications written using SpecFlow (Cucumber equivalent for .NET)

•Complex business domain

•BAs (client's side) with strong knowledge about the business needs

**

We need examples to understand!

**

**

**

3 amigos session to the rescue...

**

**

**

Real life example: NY investment bank

•No QAs in the team

•3 amigos = 2 Devs + 1 BA

•2 Devs, but one with a QA mindset

*

Feature file: concise way of presenting ideas. The path to fulfill business

needs.

*

**

So, what BDD is really about?

**

BDD is a full-stack agile methodology!

**

Examples Tests

Requirements

can become

elaborate verify

Examples, requirements and tests are essentially tied together in a loop.

*

•Enough is enough

•Deliver stakeholder value

•It’s all behavior

*

The principles of BDD

**

How BDD enhances TDD?

**

"I decided it must be possible to present TDD in a way that

gets straight to the good stuff and avoids all the

pitfalls." ~ NORTH, DAN

**

Move away from the word "Test"

**

*

•Explore examples through collaboration

•Create living documentation

*

Two things about BDD

**

Questions?

*

**

Thanks!

*

Nicholas Pufale-mail: npufal@thoughtworks.comblog: http://coffeecupblog.comtwitter: @nicholaspufal

Juraci Vieirae-mail: jneto@thoughtworks.omblog: http://testenext.blogspot.com.br