SlideShare a Scribd company logo
1
How behavior-driven
development fuses
developers and testers
Bastian Seehaus, Baris Güldali
16.7.2015
2
Prelude
https://prezi.com/yon4j9tec8bd/deutschepostadress_and_s-labgermantestingday-part1/
3
Agenda
• What we use: BDD
• What we do: DSL using keywords
• How we do: Technologies for BDD
4
Developer
Scenario
Given …
When …
Then …
Scenario
Given …
When …
Then …
Behavior-Driven Development
User Story
As a role
I want to use a function
so that I achieve a goal
Scenario
Given some initial context,
When an event occurs,
Then ensure some outcomes.
Product owner
Business analyst Tester
[RachelDavies:BDDinaNutshell]
“BDD = Shared understanding by discussing examples”
tests
5
BDD example
User Story: Customer withdraws cash
As a customer,
I want to withdraw cash from an ATM,
so that I don’t have to wait in line at the bank.
Scenario 1: Account is in credit
Given the account is in credit
And the card is valid
When the customer requests cash
Then ensure the account is debited
And ensure cash is dispensed
And ensure the card is returned
Scenario 2: Account is overdrawn
Given the account is overdrawn
And the card is valid
When the customer requests cash
Then ensure a rejection message is displayed
And ensure cash is not dispensed
And ensure the card is returned
readable
@Given(“the account is overdrawn”)
public bool accountIsOverdrawn(){
...
}
@Given(“the card is valid”)
public bool cardIsValid(){
...
}
@When(“the customer requests cash”)
public void customerRequestsCash() {
...
}
executable
http://dannorth.net/introducing-bdd/
6
Agenda
• What we use: BDD
• What we do: DSL using keywords
• How we do: Technologies for BDD
7
DSL using keywords
Scenario
Given …
When …
Then …
Scenario
Given …
When …
Then …
User Story
As a …
I want to …
so that ....
Scenario
Given …
When …
Then …
Keyword catalogue
tests
uses
frontend
keywords
backend
keywords
• GUI interactions
• Navigation actions
• Business pre and
post conditions
• Service invocations
• Database actions
• Command line
actions
• Technical pre and
post conditions
Product owner Business analyst
Tester Developer
8
DSL using keywords
• GUI interactions
• Navigation actions
• Business pre and
post conditions
Product owner Business analyst
• Service invocations
• Database actions
• Command line
actions
• Technical pre and
post conditions
Tester Developer
9
Agenda
• What we use: BDD
• What we do: DSL using keywords
• How we do: Technologies for BDD
10
Technologies for BDD
11
JBehave for
[http://52.28.86.73]
12
Our prototype
Ticket::
User Story
Ticket::
Scenario
+subtask
Script/Plugin
CustomField::
BDD Editor
+fields
Atlassian-API
13
Lessons
Learned
Summary
• What we use: BDD
– for early test specification
– using natural language
– imminent test execution
• What we do: DSL using keywords
– frontend keywords
– backend keywords
• How we do: Technologies for BDD
– test specification: Confluence & JIRA
– test execution: Robot Framework & JBehave
14
“How behavior-driven development fuses developers and testers?”
Lessons Learned
• Test activities shifted
– Business analyst writes test cases
– Testers and developers enable test execution
• Defining and maintaining a keyword catalogue …
– is of great importance
– requires high level of discipline
• Tools, tools, tools …
– User friendly editors increase the acceptance
– Scripting for tool integration
Keyword catalogue
15
s-lab – Software Quality Lab
University of Paderborn
Zukunftsmeile 1
33102 Paderborn
Tel.: +49 5251 60 5392
http://s-lab.upb.de
bguldali@s-lab.upb.de
Thank you for your
attention.
Thank you for your attention!

More Related Content

PPTX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
PDF
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
PDF
Phpers day 2019
PDF
Behavior Driven Development with Cucumber
PPTX
Myths and Challenges of Behaviour Driven Development
PPTX
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
PDF
Scrum + bdd + ddd
PPTX
Gateway to Agile: XP and BDD
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Phpers day 2019
Behavior Driven Development with Cucumber
Myths and Challenges of Behaviour Driven Development
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Scrum + bdd + ddd
Gateway to Agile: XP and BDD

Similar to German Testing Day 2015 - How behavior-driven development fuses developers and testers (20)

PPTX
Prashant technical practices-tdd for xebia event
PPTX
Agile software requirements management with Impact Mapping and BDD
PDF
Technology-Driven Development: Using Automation and Development Techniques to...
PPTX
Cucumber is a Behavior Driven Development tool used to develop test cases for...
PPTX
Behavior Driven Development
PPTX
Behavior Driven Development - TdT@Cluj #15
PDF
DRUPAL AUDITS MADE FASTR
PPTX
BDD Selenium for Agile Teams - User Stories
PPTX
Bdd in action
PPTX
.NET executable requirements
PPTX
Technology-Driven Development: Using Automation and Development Techniques to...
PDF
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
PDF
BDD approaches for web development at Agile Testing Days 2009
PPTX
Making the Move to Behavior Driven Development
PDF
Introduction to TDD and BDD
PDF
Behaviour Driven Development: Oltre i limiti del possibile
PDF
Bdd For Web Applications from Scandinavian Developer Conference 2010
PDF
Testing stage. being ahead business with cucumber
DOC
Adnan_Khan_Profile
ODP
Moving to tdd bdd
Prashant technical practices-tdd for xebia event
Agile software requirements management with Impact Mapping and BDD
Technology-Driven Development: Using Automation and Development Techniques to...
Cucumber is a Behavior Driven Development tool used to develop test cases for...
Behavior Driven Development
Behavior Driven Development - TdT@Cluj #15
DRUPAL AUDITS MADE FASTR
BDD Selenium for Agile Teams - User Stories
Bdd in action
.NET executable requirements
Technology-Driven Development: Using Automation and Development Techniques to...
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
BDD approaches for web development at Agile Testing Days 2009
Making the Move to Behavior Driven Development
Introduction to TDD and BDD
Behaviour Driven Development: Oltre i limiti del possibile
Bdd For Web Applications from Scandinavian Developer Conference 2010
Testing stage. being ahead business with cucumber
Adnan_Khan_Profile
Moving to tdd bdd
Ad

Recently uploaded (20)

PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
System and Network Administration Chapter 2
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
history of c programming in notes for students .pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
assetexplorer- product-overview - presentation
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Wondershare Filmora 15 Crack With Activation Key [2025
System and Network Administration Chapter 2
How to Choose the Right IT Partner for Your Business in Malaysia
Odoo POS Development Services by CandidRoot Solutions
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Design an Analysis of Algorithms I-SECS-1021-03
Odoo Companies in India – Driving Business Transformation.pdf
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Upgrade and Innovation Strategies for SAP ERP Customers
Design an Analysis of Algorithms II-SECS-1021-03
history of c programming in notes for students .pptx
wealthsignaloriginal-com-DS-text-... (1).pdf
Designing Intelligence for the Shop Floor.pdf
PTS Company Brochure 2025 (1).pdf.......
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
assetexplorer- product-overview - presentation
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Ad

German Testing Day 2015 - How behavior-driven development fuses developers and testers

  • 1. 1 How behavior-driven development fuses developers and testers Bastian Seehaus, Baris Güldali 16.7.2015
  • 3. 3 Agenda • What we use: BDD • What we do: DSL using keywords • How we do: Technologies for BDD
  • 4. 4 Developer Scenario Given … When … Then … Scenario Given … When … Then … Behavior-Driven Development User Story As a role I want to use a function so that I achieve a goal Scenario Given some initial context, When an event occurs, Then ensure some outcomes. Product owner Business analyst Tester [RachelDavies:BDDinaNutshell] “BDD = Shared understanding by discussing examples” tests
  • 5. 5 BDD example User Story: Customer withdraws cash As a customer, I want to withdraw cash from an ATM, so that I don’t have to wait in line at the bank. Scenario 1: Account is in credit Given the account is in credit And the card is valid When the customer requests cash Then ensure the account is debited And ensure cash is dispensed And ensure the card is returned Scenario 2: Account is overdrawn Given the account is overdrawn And the card is valid When the customer requests cash Then ensure a rejection message is displayed And ensure cash is not dispensed And ensure the card is returned readable @Given(“the account is overdrawn”) public bool accountIsOverdrawn(){ ... } @Given(“the card is valid”) public bool cardIsValid(){ ... } @When(“the customer requests cash”) public void customerRequestsCash() { ... } executable http://dannorth.net/introducing-bdd/
  • 6. 6 Agenda • What we use: BDD • What we do: DSL using keywords • How we do: Technologies for BDD
  • 7. 7 DSL using keywords Scenario Given … When … Then … Scenario Given … When … Then … User Story As a … I want to … so that .... Scenario Given … When … Then … Keyword catalogue tests uses frontend keywords backend keywords • GUI interactions • Navigation actions • Business pre and post conditions • Service invocations • Database actions • Command line actions • Technical pre and post conditions Product owner Business analyst Tester Developer
  • 8. 8 DSL using keywords • GUI interactions • Navigation actions • Business pre and post conditions Product owner Business analyst • Service invocations • Database actions • Command line actions • Technical pre and post conditions Tester Developer
  • 9. 9 Agenda • What we use: BDD • What we do: DSL using keywords • How we do: Technologies for BDD
  • 13. 13 Lessons Learned Summary • What we use: BDD – for early test specification – using natural language – imminent test execution • What we do: DSL using keywords – frontend keywords – backend keywords • How we do: Technologies for BDD – test specification: Confluence & JIRA – test execution: Robot Framework & JBehave
  • 14. 14 “How behavior-driven development fuses developers and testers?” Lessons Learned • Test activities shifted – Business analyst writes test cases – Testers and developers enable test execution • Defining and maintaining a keyword catalogue … – is of great importance – requires high level of discipline • Tools, tools, tools … – User friendly editors increase the acceptance – Scripting for tool integration Keyword catalogue
  • 15. 15 s-lab – Software Quality Lab University of Paderborn Zukunftsmeile 1 33102 Paderborn Tel.: +49 5251 60 5392 http://s-lab.upb.de bguldali@s-lab.upb.de Thank you for your attention. Thank you for your attention!