Behavior Driven Development - Agilia Conference...Behavior Driven Development BDD and Continuous...
Transcript of Behavior Driven Development - Agilia Conference...Behavior Driven Development BDD and Continuous...
Value Through Collaboration
Behavior Driven Development
Table of
Introduction
Specification by Example
Common mistakes
Behavior Driven Development
BDD and Continuous Integration
A Case Study: Gtech
What about Open Source?
Have you experienced it?
Have you experienced it?
Have you experienced it?
Have you experienced it?
Who we?
Víctor Fairén
Telecom Engineer for 9 years Continuous Delivery Lead at Gtech Scrum Master at Gtech Working with Agile since 2011
Jordi Falguera
Software Engineer for 10+ years Master BlackBelt Lean 6Sigma Technology Manager at Gtech Working on BDD since 2011
@torinoxx @jordi_falguera
Table of
Introduction
Specification by Example
Common mistakes
Behavior Driven Development
BDD and Continuous Integration
A Case Study: Gtech
What about Open Source?
Specification
Aligned Stakeholders
The Three
Conversation
Confirmation
Card
Table of
Introduction
Specification by Example
Common mistakes
Behavior Driven Development
BDD and Continuous Integration
A Case Study: Gtech
What about Open Source?
Common
Death by
Groupthink
Groupthink is a psychological phenomenon that occurs within a group of people, in which the desire for harmony or conformity in the group results in an irrational or dysfunctional decision-making outcome.
Redundancy of
Table of
Introduction
Specification by Example
Common mistakes
Behavior Driven Development
BDD and Continuous Integration
A Case Study: Gtech
What about Open Source?
What is
BDD was created by Dan North as as a response to the issues encountered teaching test-driven development (TDD) and is basically a way to rethink the approach to unit testing and acceptance testing.
• How software development managed by both business interests and technical insight.
• Requirements are specified in a way that they are explicit, executable and testable.
• The BDD tools serve to add automation to the ubiquitous language which is the central theme of BDD.
Ubiquitous
Gherkin is a Business Readable, Domain Specific Language that lets you describe software's behavior without detailing how that behavior is implemented.
Gherkin
Stories in
User story template
Narrative: In Order to [benefit] As a [role] I Want to [feature]
Acceptance Criteria: Scenario: [description]
Given [context or precondition] When [event or action] Then [outcome validation]
Story Title
BDD
public void goUrl(String url) { String formattedUrl = this.getVariableValue(url); String baseUrl = this.getVariableValue("@baseUrl"); if (!formattedUrl.startsWith("http") && !baseUrl.isEmpty()) { formattedUrl = baseUrl + "/" + formattedUrl; } try { getDriver().get(formattedUrl); } catch (TimeoutException e) { if (!this.getPageLoadTimeout()) { throw e; } } this.webWait(this.getWaitAction()); }
@Given ("the user is on the URL $url")
Scenario: Successful login Given the user is on the URL / …
BDD
Table of
Introduction
Specification by Example
Common mistakes
Behavior Driven Development
BDD and Continuous Integration
A Case Study: Gtech
What about Open Source?
Integration with
BDD
Table of
Introduction
Specification by Example
Common mistakes
Behavior Driven Development
BDD and Continuous Integration
A Case Study: Gtech
What about Open Source?
A Case Study:
Gtech Global Lottery
Technical
Working in
Set of Steps
Let’s see
Table of
Introduction
Specification by Example
Common mistakes
Behavior Driven Development
BDD and Continuous Integration
A Case Study: Gtech
What about Open Source?
Open Source
https://github.com/TechnologyConversations
http://www.bddassistant.com
Thank !!!