a study of the characteristics of behaviour driven development

16
Lero© 2010 A Study of the Characteristics of Behaviour Driven Development Carlos Solis and Xiaofeng Wang [email protected]

Upload: carlos-solis

Post on 13-Apr-2017

826 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: A study of the characteristics of Behaviour Driven Development

Lero© 2010

A Study of the Characteristics of Behaviour Driven

Development

Carlos Solis and Xiaofeng [email protected]

Page 2: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Contents

• Motivation• Research approach• Characteristics of BDD• Conceptual model of BDD• Conclusions & Future Work

Page 3: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Motivation

Many developers find themselves confused while using TDD and ATDD in their projects:

“programmers wanted to know where to start, what to test and what not to test, how much to test in one go, what to call their tests, and how to understand why a test fails”

Page 4: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Motivation

• The BDD approach is still under development. The understanding of BDD is far from clear and unanimous. There is no one well-accepted definition of BDD.

• The descriptions of the characteristics of BDD are vague and scattered.

• Based on these observations, the main objective of our study is to identify the characteristics of BDD and conceptualize them in an explicit manner.

Page 5: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Research approach

Literature review

Identify Characteristics

& Concepts

Are in TDD?

Is in a toolkit?

Marktoolkit

No

Yes

End

AnalyseToolkit

All toolkits

analysed

Page 6: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Research approach-BDD toolkits analysed

xBehave Family xSpec FamilyStoryQ Cucumber SpecFlow

JBehave NBehave RSpec MSpec

Language supported

Java C# Ruby C# C# Ruby, Java,

Groovy, C#, etc.

C#

Version analysed

3.1.2 0.4.5 2.3 5.1 2.0.4 0.10.0 1.5

Page 7: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Identified Characteristics

1. Iterative Decomposition Process 2. Ubiquitous Language3. Plain Text Description with User Story and Scenario

Templates4. Automated Acceptance Testing with Mapping Rules5. Readable Behaviour Oriented Specification Code 6. Behavior Driven at Different Phases

Page 8: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Iterative Decomposition Process

• It is often difficult for developers to find a starting point to communicate with customers during requirements gathering.

• Business value is generally difficult to identify and made explicit.

• BDD the analysis starts with identification of the expected behaviours of a system, which are more concrete and easy to identify.

• The sytem’s behaviours will be derived from the business outcomes it intends to produce. Business outcomes are then drilled down to feature sets.

Page 9: A study of the characteristics of Behaviour Driven Development

Lero© 2010

User Stories and Scenarios using BDD ubiquitous language and plain text

Page 10: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Automated Acceptance Testing and Readable Behaviour Oriented Specification Code

Page 11: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Behavior Driven at Different Phases

• BDD at the initial planning phase, correspond to business outcomes.

• At the analysis phase, business outcomes are decomposed into a set of features which capture the behaviour of the targeting system.

• BDD is also embodied at the implementation phase. Automated Acceptance testing or specification code is an integral part of the implementation in the BDD approach.

Page 12: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Toolkits BDD characteristics support

Support of the BDD Characteristics

xBehave Family xSpec FamilyStoryQ Cucumber SpecFlowJBehave NBehave RSpec MSpec

Ubiquitous language definition × × × × × × ×Iterative decomposition process × × × × × × ×Editing plain text

based onUser story template

× × ×

Scenario template

× × ×

Automated acceptance testing with mapping rules

× × ×

Readable BDD code × BDD phases

Planning × × × × × × ×Analysis × × ×

Implementation x

Page 13: A study of the characteristics of Behaviour Driven Development

Lero© 2010

BDD Conceptual Model

BusinessOutcome FeatureSet

1

-sub *

-achieve

*

-achievedBy

0..1

Feature

UserStory

-want1-framedBy*

Role

-as 1*

Benefit

1

-get

1

Scenario

1

*

Step

Context Event Action

1-composedBy*

ExecutableSpecification (AcceptanceTest) TestMethod

1

0..1

1 * 0..1 1

1 *

UserStoryTemplate-definedUsing

1 *

ScenarioTemplate-definedUsing

1 *

BDD UbiquitousLanguage1 1

1

1

Page 14: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Conclusions

• BDD is a combination of a ubiquitous language, TDD and automated acceptance testing. It tries to get the most out of each single approach.

• We have identified 6 BDD characteristics through literature review and toolkits analysis.

• BDD toolkits studied mainly focused on the implementation phase of a software project and provide limited support to the analysis phase, and none to the planning phase.

• We also presented a conceptual model of BDD based on the results of our study, to provide a more explicit and formal description of the BDD concepts and their relationships.

Page 15: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Future Work

• One future study could extend an existing BDD toolkit or develop a new one based on the proposed conceptual model.

• Another future study could extend and implement additional mapping rules.

Page 16: A study of the characteristics of Behaviour Driven Development

Lero© 2010

Thank you

Questions?