SlideShare une entreprise Scribd logo
1  sur  11
2015-04-18 Behaviour Driven Development Hands-on 1
Behaviour Driven Development
Hands-on
Implementing the Game "CodeBreaker" as
Example
Berlin systems.camp 2015 - systems engineering barcamp berlin, 2015-04-18
Lecturer: Rolf Hemmerling
Slides: http://www.slideshare.net/hemmerling/
License: Creative Commons - Attribution-ShareAlike 4.0 Generic (
http://www.creativecommons.org/licenses/by-sa/4.0/ )
2015-04-18 Behaviour Driven Development Hands-on 2
Agenda
1. CodeBreaker – The Game
2. Gherkin – The BDD Language
3. Coding..
4. Project Feedback
5. Resources
2015-04-18 Behaviour Driven Development Hands-on 3
1 CodeBreaker – The Game
● Goal: You have to guess a 4-digit secret number
● Howto: You get hints after each guess
● "+" = Right Number at right place
● "-" = Right number, but wrong place
● End of Game: If you got the right number
Example:
Secret Number = "1134"
Guess = "5115"
Hint = "+-"
2015-04-18 Behaviour Driven Development Hands-on 4
2.1 Gherkin – The BDD Language
Feature: code-breaker starts game
As a code-breaker
I want to start a game
So that I can break the code
@StartGame
Scenario: start game
Given I am not yet playing
When I start a new game
Then I should see "Welcome to Codebreaker!"
And I should see "Enter guess:"
2015-04-18 Behaviour Driven Development Hands-on 5
2.2 Gherkin – The BDD Language
Feature: code-breaker submits guess
Scenario Outline: submit guess
Given the secret code is "<code>"
When I guess "<guess>"
Then the mark should be "<mark>"
Scenarios: no matches
| code | guess | mark |
| 1234 | 5555 | |
Scenarios: 1 number correct
| code | guess | mark |
| 1234 | 1555 | + |
| 1234 | 2555 | - |
2015-04-18 Behaviour Driven Development Hands-on 6
2.3 BDD Process, Step #1
.feature File BDD source File
code
Native language Executable test
code
2015-04-18 Behaviour Driven Development Hands-on 7
2.4 BDD Process, Step 2..n
.feature BDD Application
Source Code Source Code
Native Executable Executable
language test code application
code
executable complies
specification
.feature BDD Application
Source Code Source Code
Native Executable Executable
language test code application
code
executable complies
specification
2015-04-18 Behaviour Driven Development Hands-on 8
1. Domain expert of the customer and software developer
● Creation of BDD documents
2. Software developer
● Auto-generation of a basic script
● PowerShell.exe -ExecutionPolicy Unrestricted
● behave my.feature 2>&1 >my.py
● Make the script runable ( avoid $FF in the file )
● Implement a step
● Implement steps with variables
● Implement steps with regular expressions
● Test-driven Implementation of the application, using unit tests
3 Coding...
2015-04-18 Behaviour Driven Development Hands-on 9
3 Domain expert of the customer and software developer
● Integration test of the application
● Presentation and roll-out of the application
● Project feedback
3 Coding...
2015-04-18 Behaviour Driven Development Hands-on 10
4 Project Feedback
● If BDD is intended to describe business logic, what to do with UI messages?
● BDD does not help to describe business algorithms ( in opposite to UML,
BPMN )
● Tricky "Scenarios: matches with duplicates"
● TDD & Unittests => helpful
● I felt helpless with BDD
● Behave produces much output garbage
● Integration with IDEs, with information filtering would be helpful
2015-04-18 Behaviour Driven Development Hands-on 11
5 Resources
● Book
● David Chelimsky, Dave Astels, Bryan Helmkamp, Dan North, Zach
Dennis, Aslak Hellesoy: "The RSpec Book: Behaviour Driven
Development with RSpec, Cucumber, and Friends", ISBN 1934356379
● Rolf Hemmerling's webpage, also about BDD
http://www.hemmerling.com/doku.php/en/specbyex.html
● Rolf Hemmerling's webpage, also about GUI designers
http://www.hemmerling.com/doku.php/en/python.html
● Rolf Hemmerling's Slides http://www.slideshare.net/hemmerling/

Contenu connexe

Tendances

PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with MagentoTu Hoang
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?Michal Juhas
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplateStanislav Petrov
 
Behaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with DrupalBehaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with Drupalsmithmilner
 
C++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the uglyC++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the uglyDror Helper
 
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...VincitOy
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensionsRoberto Segura
 
Developer Job in Practice
Developer Job in PracticeDeveloper Job in Practice
Developer Job in Practiceintive
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonAll Things Open
 
Barcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot FrameworkBarcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot FrameworkSomkiat Puisungnoen
 
Code Obfuscation for Android & WP7
Code Obfuscation for Android & WP7Code Obfuscation for Android & WP7
Code Obfuscation for Android & WP7Jeff Bollinger
 
Buildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python frameworkBuildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python frameworkCarles San Agustin
 
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing ElixirWeverton Timoteo
 
Back to basics - PHPUnit
Back to basics - PHPUnitBack to basics - PHPUnit
Back to basics - PHPUnitSebastian Marek
 

Tendances (20)

PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with Magento
 
Unit Testing TypeScript
Unit Testing TypeScriptUnit Testing TypeScript
Unit Testing TypeScript
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
 
Tdd presentation
Tdd presentationTdd presentation
Tdd presentation
 
Behaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with DrupalBehaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with Drupal
 
C++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the uglyC++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the ugly
 
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensions
 
Automatic Test 2019-07-25
Automatic Test 2019-07-25Automatic Test 2019-07-25
Automatic Test 2019-07-25
 
User story workflow (eng)
User story workflow (eng)User story workflow (eng)
User story workflow (eng)
 
Developer Job in Practice
Developer Job in PracticeDeveloper Job in Practice
Developer Job in Practice
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
 
Barcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot FrameworkBarcamp Bangkhen :: Robot Framework
Barcamp Bangkhen :: Robot Framework
 
Code Obfuscation for Android & WP7
Code Obfuscation for Android & WP7Code Obfuscation for Android & WP7
Code Obfuscation for Android & WP7
 
Buildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python frameworkBuildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python framework
 
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
21o. RubyFloripa - Maintaining legacy Rails app and introducing Elixir
 
Back to basics - PHPUnit
Back to basics - PHPUnitBack to basics - PHPUnit
Back to basics - PHPUnit
 
Driving development in PHP
Driving development in PHPDriving development in PHP
Driving development in PHP
 
Buildbot
BuildbotBuildbot
Buildbot
 

Similaire à Behaviour Driven Development Hands-on

BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...Hemmerling
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with BehatPromet Source
 
The 5 Stages of Software Development
The 5 Stages of Software DevelopmentThe 5 Stages of Software Development
The 5 Stages of Software DevelopmentSterling Technolabs
 
PHP CE 2018 - Building Symfony application with Ports and Adapters approach a...
PHP CE 2018 - Building Symfony application with Ports and Adapters approach a...PHP CE 2018 - Building Symfony application with Ports and Adapters approach a...
PHP CE 2018 - Building Symfony application with Ports and Adapters approach a...Dariusz Drobisz
 
Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverterJaoued Ahmed
 
android_programming_with_kotlin_for_beginners_(2019).pdf
android_programming_with_kotlin_for_beginners_(2019).pdfandroid_programming_with_kotlin_for_beginners_(2019).pdf
android_programming_with_kotlin_for_beginners_(2019).pdfSemsemSameer1
 
Dev01 - Don't Reinvent the Wheel
Dev01 - Don't Reinvent the WheelDev01 - Don't Reinvent the Wheel
Dev01 - Don't Reinvent the WheelChristian Güdemann
 
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...XebiaLabs
 
Bdd agile requirements
Bdd agile requirementsBdd agile requirements
Bdd agile requirementsAgile Vietnam
 
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesGiulio De Donato
 
Testing stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberTesting stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberAlex Mikitenko
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategiesRaquel Pau
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucksPeter Gfader
 
Mini Projects for Computer Science Engineering Students.pdf
Mini Projects for Computer Science Engineering Students.pdfMini Projects for Computer Science Engineering Students.pdf
Mini Projects for Computer Science Engineering Students.pdfjagan477830
 
Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dominique Boutin
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical DebtAdam Culp
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...Alexandr Savchenko
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...Fwdays
 
presentation about internship project details
presentation about internship project detailspresentation about internship project details
presentation about internship project detailsrajwork2
 

Similaire à Behaviour Driven Development Hands-on (20)

BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with Behat
 
The 5 Stages of Software Development
The 5 Stages of Software DevelopmentThe 5 Stages of Software Development
The 5 Stages of Software Development
 
PHP CE 2018 - Building Symfony application with Ports and Adapters approach a...
PHP CE 2018 - Building Symfony application with Ports and Adapters approach a...PHP CE 2018 - Building Symfony application with Ports and Adapters approach a...
PHP CE 2018 - Building Symfony application with Ports and Adapters approach a...
 
Scrum + bdd + ddd
Scrum + bdd + dddScrum + bdd + ddd
Scrum + bdd + ddd
 
Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverter
 
android_programming_with_kotlin_for_beginners_(2019).pdf
android_programming_with_kotlin_for_beginners_(2019).pdfandroid_programming_with_kotlin_for_beginners_(2019).pdf
android_programming_with_kotlin_for_beginners_(2019).pdf
 
Dev01 - Don't Reinvent the Wheel
Dev01 - Don't Reinvent the WheelDev01 - Don't Reinvent the Wheel
Dev01 - Don't Reinvent the Wheel
 
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...
DevOps Best Practices: Managing and Scaling Release Automation Using Visual a...
 
Bdd agile requirements
Bdd agile requirementsBdd agile requirements
Bdd agile requirements
 
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
 
Testing stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberTesting stage. being ahead business with cucumber
Testing stage. being ahead business with cucumber
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategies
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucks
 
Mini Projects for Computer Science Engineering Students.pdf
Mini Projects for Computer Science Engineering Students.pdfMini Projects for Computer Science Engineering Students.pdf
Mini Projects for Computer Science Engineering Students.pdf
 
Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
 
presentation about internship project details
presentation about internship project detailspresentation about internship project details
presentation about internship project details
 

Plus de Hemmerling

luaingames.ppt
luaingames.pptluaingames.ppt
luaingames.pptHemmerling
 
Assisted Living - Pouring a Glas of Water - A "FRANKA EMIKA PANDA" Robotic Ap...
Assisted Living - Pouring a Glas of Water - A "FRANKA EMIKA PANDA" Robotic Ap...Assisted Living - Pouring a Glas of Water - A "FRANKA EMIKA PANDA" Robotic Ap...
Assisted Living - Pouring a Glas of Water - A "FRANKA EMIKA PANDA" Robotic Ap...Hemmerling
 
Worst of Job Application
Worst of Job ApplicationWorst of Job Application
Worst of Job ApplicationHemmerling
 
Beleuchtunganalyse und -planung R3974 & R3978
Beleuchtunganalyse  und -planung R3974 & R3978Beleuchtunganalyse  und -planung R3974 & R3978
Beleuchtunganalyse und -planung R3974 & R3978Hemmerling
 
The Hollywood Principle – Don´t call us, we call you
The Hollywood Principle –  Don´t call us, we call youThe Hollywood Principle –  Don´t call us, we call you
The Hollywood Principle – Don´t call us, we call youHemmerling
 

Plus de Hemmerling (6)

luaingames.ppt
luaingames.pptluaingames.ppt
luaingames.ppt
 
Assisted Living - Pouring a Glas of Water - A "FRANKA EMIKA PANDA" Robotic Ap...
Assisted Living - Pouring a Glas of Water - A "FRANKA EMIKA PANDA" Robotic Ap...Assisted Living - Pouring a Glas of Water - A "FRANKA EMIKA PANDA" Robotic Ap...
Assisted Living - Pouring a Glas of Water - A "FRANKA EMIKA PANDA" Robotic Ap...
 
Ux at wc
Ux at wcUx at wc
Ux at wc
 
Worst of Job Application
Worst of Job ApplicationWorst of Job Application
Worst of Job Application
 
Beleuchtunganalyse und -planung R3974 & R3978
Beleuchtunganalyse  und -planung R3974 & R3978Beleuchtunganalyse  und -planung R3974 & R3978
Beleuchtunganalyse und -planung R3974 & R3978
 
The Hollywood Principle – Don´t call us, we call you
The Hollywood Principle –  Don´t call us, we call youThe Hollywood Principle –  Don´t call us, we call you
The Hollywood Principle – Don´t call us, we call you
 

Dernier

OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 

Dernier (20)

OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 

Behaviour Driven Development Hands-on

  • 1. 2015-04-18 Behaviour Driven Development Hands-on 1 Behaviour Driven Development Hands-on Implementing the Game "CodeBreaker" as Example Berlin systems.camp 2015 - systems engineering barcamp berlin, 2015-04-18 Lecturer: Rolf Hemmerling Slides: http://www.slideshare.net/hemmerling/ License: Creative Commons - Attribution-ShareAlike 4.0 Generic ( http://www.creativecommons.org/licenses/by-sa/4.0/ )
  • 2. 2015-04-18 Behaviour Driven Development Hands-on 2 Agenda 1. CodeBreaker – The Game 2. Gherkin – The BDD Language 3. Coding.. 4. Project Feedback 5. Resources
  • 3. 2015-04-18 Behaviour Driven Development Hands-on 3 1 CodeBreaker – The Game ● Goal: You have to guess a 4-digit secret number ● Howto: You get hints after each guess ● "+" = Right Number at right place ● "-" = Right number, but wrong place ● End of Game: If you got the right number Example: Secret Number = "1134" Guess = "5115" Hint = "+-"
  • 4. 2015-04-18 Behaviour Driven Development Hands-on 4 2.1 Gherkin – The BDD Language Feature: code-breaker starts game As a code-breaker I want to start a game So that I can break the code @StartGame Scenario: start game Given I am not yet playing When I start a new game Then I should see "Welcome to Codebreaker!" And I should see "Enter guess:"
  • 5. 2015-04-18 Behaviour Driven Development Hands-on 5 2.2 Gherkin – The BDD Language Feature: code-breaker submits guess Scenario Outline: submit guess Given the secret code is "<code>" When I guess "<guess>" Then the mark should be "<mark>" Scenarios: no matches | code | guess | mark | | 1234 | 5555 | | Scenarios: 1 number correct | code | guess | mark | | 1234 | 1555 | + | | 1234 | 2555 | - |
  • 6. 2015-04-18 Behaviour Driven Development Hands-on 6 2.3 BDD Process, Step #1 .feature File BDD source File code Native language Executable test code
  • 7. 2015-04-18 Behaviour Driven Development Hands-on 7 2.4 BDD Process, Step 2..n .feature BDD Application Source Code Source Code Native Executable Executable language test code application code executable complies specification .feature BDD Application Source Code Source Code Native Executable Executable language test code application code executable complies specification
  • 8. 2015-04-18 Behaviour Driven Development Hands-on 8 1. Domain expert of the customer and software developer ● Creation of BDD documents 2. Software developer ● Auto-generation of a basic script ● PowerShell.exe -ExecutionPolicy Unrestricted ● behave my.feature 2>&1 >my.py ● Make the script runable ( avoid $FF in the file ) ● Implement a step ● Implement steps with variables ● Implement steps with regular expressions ● Test-driven Implementation of the application, using unit tests 3 Coding...
  • 9. 2015-04-18 Behaviour Driven Development Hands-on 9 3 Domain expert of the customer and software developer ● Integration test of the application ● Presentation and roll-out of the application ● Project feedback 3 Coding...
  • 10. 2015-04-18 Behaviour Driven Development Hands-on 10 4 Project Feedback ● If BDD is intended to describe business logic, what to do with UI messages? ● BDD does not help to describe business algorithms ( in opposite to UML, BPMN ) ● Tricky "Scenarios: matches with duplicates" ● TDD & Unittests => helpful ● I felt helpless with BDD ● Behave produces much output garbage ● Integration with IDEs, with information filtering would be helpful
  • 11. 2015-04-18 Behaviour Driven Development Hands-on 11 5 Resources ● Book ● David Chelimsky, Dave Astels, Bryan Helmkamp, Dan North, Zach Dennis, Aslak Hellesoy: "The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends", ISBN 1934356379 ● Rolf Hemmerling's webpage, also about BDD http://www.hemmerling.com/doku.php/en/specbyex.html ● Rolf Hemmerling's webpage, also about GUI designers http://www.hemmerling.com/doku.php/en/python.html ● Rolf Hemmerling's Slides http://www.slideshare.net/hemmerling/