41
Behaviour Driven Development “It’s Testing, Jim, but not as we know it!”

It's Testing, Jim, but not as we know it - BDD for Testers

Embed Size (px)

Citation preview

Page 1: It's Testing, Jim, but not as we know it - BDD for Testers

Behaviour Driven Development

“It’s Testing, Jim, but not as we know it!”

Page 2: It's Testing, Jim, but not as we know it - BDD for Testers

John Ferguson Smart

Consultant Trainer Mentor Author Speaker Coder

WelcomeWelcome

John Ferguson Smart

Consultant Trainer Mentor Author Speaker Coder

Page 3: It's Testing, Jim, but not as we know it - BDD for Testers

Behaviour Driven Development

You keep using that term

I do not think it means what you think it means

Page 4: It's Testing, Jim, but not as we know it - BDD for Testers

You may have heard of it

A test automation tool?

Behaviour Driven Development

Page 5: It's Testing, Jim, but not as we know it - BDD for Testers

You may have heard of it

A different way to write user stories?

Behaviour Driven Development

Feature: Search by keyword In order for buyers to find what they are looking for more efficiently As a seller I want buyers to be able to search for articles by keywords Scenario: Search for articles by keyword Given I want to buy a wool scarf When I search for 'wool' Then I should see only articles related to 'wool' Scenario: Search by shop name Given I want to see articles from a particular shop When I search by shop for 'docksmith' Then I should find 1 shop called 'docksmith'

Page 6: It's Testing, Jim, but not as we know it - BDD for Testers

You may have heard of it

Behaviour Driven Development

A way to collaborate better?

Page 7: It's Testing, Jim, but not as we know it - BDD for Testers

You may have heard of it

Behaviour Driven Development

a shared understanding

software that matters

Using examples

Page 8: It's Testing, Jim, but not as we know it - BDD for Testers

You may have heard of it

Behaviour Driven Development

Hunting out valueAutomated Acceptance Criteria

API and code design

Collaboration

Building the software right

Building the right software

Living Documentation

BDD

Page 9: It's Testing, Jim, but not as we know it - BDD for Testers

The business owner tells the business

analyst what he wants

12 The business

analyst writes a requirements

document

3 The developer translates the requirements into software

4 The tester translates the requirements

into test cases 5 The technical writer translates

the software into functional and technical

documentationA traditional development process

BDD in a nutshell

Page 10: It's Testing, Jim, but not as we know it - BDD for Testers

The business owner and the business

analyst have a conversation about

what he needs.

1

2

3

4 The tester uses these scenarios as the basis for

her tests

5

The automated tests provide feedback on progress and help

document the application

The business analyst, the developer and the tester elaborate the

requirements together.

The scenarios guide the developer and act as

automated tests

They define requirements as

structured, English-language format

"scenarios"

A BDD development process

BDD in a nutshellBDD in a nutshellBDD in a nutshell

Page 11: It's Testing, Jim, but not as we know it - BDD for Testers

The business owner and the business

analyst have a conversation about

what he needs.

1

2

3

4 The tester uses these scenarios as the basis for

her tests

5

The automated tests provide feedback on progress and help

document the application

The business analyst, the developer and the tester elaborate the

requirements together.

The scenarios guide the developer and act as

automated tests

They define requirements as

structured, English-language format

"scenarios"

• Specifications are elaborated collaboratively • Specifications use a common language • Executable specifications provide fast

BDD in a nutshellBDD in a nutshell

Page 12: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD is about collaboration

“Having  the  conversa/on    is  more  important  than    

recording  the  conversa/on  is  more  important  than    

automa/ng  the  conversa/on”  -­‐  Liz  Keogh

Page 13: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD is about collaboration

Story

bug reports

Working code boring

manual testing

WASTEBA

Developer

Tester

Many teams build features like this…

Page 14: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD is about collaboration

Working code and Working Automated Acceptance Tests

Exploratory testing, usability testing...

Shared understanding

Story

Examples

Automated acceptance

criteria

BDD teams focus on building a shared understanding

Page 15: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD is about collaboration

BDD teams focus on building a shared understanding

Page 16: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellA typical BDD workflow

Page 17: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellA typical BDD workflow

Frequent Flyer Application Goal: Encourage travellers to fly with Flying High airlines more often by allowing them to cumulate Frequent Flyer points that they can spend on cheaper flights.

Goals

Earning points from flights

Capabilities

Earning points from spending with partners

Viewing points earned

Spending points on bookings

FeaturesViewing current points balance

View points needed to achieve the next status level

Calculating points needed for a given destination

Page 18: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellA typical BDD workflow

Calculating points needed for a given destination As a traveller I want to know how many points I need to go to a given destination So that I can plan my next trip with Flying High Airlines

Feature

Acceptance Criteria - Need 2 points per km - Members can calculate points needed on their account home page

Acceptance Criteria

Automated Acceptance

Criteria

Page 19: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellA typical BDD workflow

Automated Acceptance

Criteria

Automated Acceptance

Tests

Page 20: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellA typical BDD workflow

Automated Acceptance

Tests

Application Code

Low level specifications

Page 21: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD Living Documentation

Meaningful feedback on what requirements have (and have not) been delivered

What about the reports?

Page 22: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD Living Documentation

Descriptions of each feature with an example of how it behaves

What about the reports?

Page 23: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD Living Documentation

What about the reports?

…complete with illustrations

Page 24: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD Living Documentation

What about the reports?

Verify how each feature was tested

Page 25: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshellBDD Living Documentation

What about the reports?

… and document releases

Page 26: It's Testing, Jim, but not as we know it - BDD for Testers

BDD Adoption Challenges

“There might be more to this than we thought”

Page 27: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Adoption Gotchas

12

3

4

The business analyst writes the scenarios and then gives them to the other team members.

1) “I did it my way”

Page 28: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Adoption Gotchas

12

3

4

The tester writes the scenarios at the end to implement an automated test suite.

2) “The Tester’s Tool”

Page 29: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Adoption Gotchas

1

2

3

45

The “Three Amigos” sessions don’t result in usable scenarios, so the developer invents them

3) “The 3 amigos coffee club”

Page 30: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Adoption Gotchas

1

2

3

45

The scenarios are too UI-centric or detail-focused, and neglect to express the core business value.

4) “The forest and the trees”

Page 31: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Adoption Gotchas

5) “The BDD Test Scribe”

12

3

4

The automated tester does not collaborate with the developers, resulting in slow and fragile acceptance tests

Page 32: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Tips for Testers

1) Team up with the developers

Page 33: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Tips for Testers

Business Rules

Business Flow

Page/Component interactions

Page/Component details

2) Use layers

Page 34: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Tips for Testers

3)Prefer non-UI tests where possible

Page 35: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Tips for Testers

4) Treat your test code like production code

Page 36: It's Testing, Jim, but not as we know it - BDD for Testers

BDD in a nutshell5 BDD Tips for Testers

5) Know when not to automate

This slide is left intentionally blank

Page 37: It's Testing, Jim, but not as we know it - BDD for Testers

3 BDD Tester Wins

Deeper participation in feature delivery

Page 38: It's Testing, Jim, but not as we know it - BDD for Testers

3 BDD Tester Wins

Higher quality automated tests

Page 39: It's Testing, Jim, but not as we know it - BDD for Testers

3 BDD Tester Wins

More time for high-quality manual testing

Page 40: It's Testing, Jim, but not as we know it - BDD for Testers

Any questions?

“It’s Testing, Jim, but not as we know it!”

Page 41: It's Testing, Jim, but not as we know it - BDD for Testers

John Ferguson Smart

Consultant Trainer Mentor Author Speaker Coder

WelcomeWelcome

John Ferguson Smart

Consultant Trainer Mentor Author Speaker Coder