SlideShare a Scribd company logo
1 of 83
Behaviour Driven Development with   Java Nikolay Vasilev 15 July 2011
Content ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BDD
Test-Driven Development (TDD) ,[object Object]
Test-Driven Development (TDD) ,[object Object],[object Object],[object Object]
Unit Testing ,[object Object],[object Object],[object Object],[object Object]
User’s Expectations ,[object Object],[object Object],[object Object],[object Object]
Testing Types and Expectations Application Levels   Testing Type Expectations   UI / Presentation / … Controls / Services / … Classes / Models / … Code Meets Customer’s Expectations Code Meets Programmer’s Expectations Unit Testing BDD Selenium
DDD and Ubiquitous Language ,[object Object],[object Object],[object Object],[object Object]
Executable Documentation ,[object Object],[object Object],[object Object],[object Object]
Behaviour Driven Design ,[object Object],[object Object],[object Object],[object Object],[object Object]
BDD as Stories and Behaviour ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Stories and Behaviour ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
A Story Structure ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BDD Process Exercise expectations against Matches to Customer QA Domain Expert Developer
BDD Process
BDD Process ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BDD Tools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BDD Tools (Java Related) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave
JBehave ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave - Features ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave Web - Features ,[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave – Five Steps Overview ,[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave – Five Steps Overview ,[object Object],Narrative : In order to  calculate BMI with ease As a  doctor I want to  have BMI Calculator application Meta : @author Nikolay Vasilev @bg-jug Scenario : Simple BMI calculator validation Given  a body mass index calculator When  a patient's is with mass 77 kg and height 1.75 m Then  patient's body mass index is 25.14285659790039
JBehave – Five Steps Overview ,[object Object]
JBehave – Five Steps Overview ,[object Object]
JBehave – Five Steps Overview ,[object Object]
JBehave – Five Steps Overview ,[object Object]
JBehave – Use Case ,[object Object],[object Object]
JBehave – Use Case ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave – Use Case ,[object Object]
JBehave Stories ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave Steps ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave Configuration ,[object Object]
JBehave Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave – Advanced ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave – Advanced ,[object Object],[object Object],[object Object],[object Object],Given  tab  e|---------------------------------  B|---------------------------------  G|---------------------------------  D|----------0--0-------------------  A|-0--2--3----------2--0-----0--0–  E|------------------------3-------- When  the guitar plays  Then  the following notes will be played  A0 A2 A3 D0 D0 A2 A0 E3 A0 A0
JBehave – Advanced ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Meta @author  Nikolay Vasilev @organization  Bulgarian Java Users Group -author *Vasilev
JBehave – Advanced ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave Reporting Options ,[object Object]
JBehave Reporting Options ,[object Object]
JBehave Reporting Options ,[object Object]
JBehave Reporting Options ,[object Object]
JBehave – Eclipse Plugin ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JBehave – Eclipse Plugin ,[object Object],[object Object],[object Object],[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
JBehave – Install Eclipse Plugin ,[object Object]
Jbehave and Selenium
JBehave and Selenium ,[object Object],[object Object],[object Object],Java, Perl, C#, C, etc. Selenium Object Tested WebApp Selenium RC Server Browsers
JBehave and Selenium ,[object Object],[object Object],Steps Selenium Object Tested WebApp Selenium RC Server Browsers Stories
JBehave and Selenium ,[object Object],[object Object],Steps Selenium Object Tested WebApp Selenium RC Server Browsers Stories
JBehave and Selenium ,[object Object],[object Object],[object Object],Steps Selenium Object Tested WebApp Selenium RC Server Browsers Stories Page Object
JBehave and Selenium ,[object Object],[object Object],[object Object],[object Object]
JBehave and Selenium ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Use Case – Web Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Use Case – Web Testing ,[object Object]
Use Case – Web Testing ,[object Object]
Use Case – Web Testing ,[object Object]
JBehave - Pros and Cons
Questions and Answers
Use Case & Examples Code ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Use Case & Examples Code ,[object Object],[object Object]
References ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
References ,[object Object],[object Object],[object Object],[object Object],[object Object]
References ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thank you for your attention!

More Related Content

What's hot

What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
Simplilearn
 
Complete guide to manual testing@uma
Complete guide to manual  testing@umaComplete guide to manual  testing@uma
Complete guide to manual testing@uma
Uma Sapireddy
 

What's hot (20)

Automation testing material by Durgasoft,hyderabad
Automation testing material by Durgasoft,hyderabadAutomation testing material by Durgasoft,hyderabad
Automation testing material by Durgasoft,hyderabad
 
Android - Day3.pptx
Android - Day3.pptxAndroid - Day3.pptx
Android - Day3.pptx
 
Gherkin /BDD intro
Gherkin /BDD introGherkin /BDD intro
Gherkin /BDD intro
 
Red Hat OpenShift on Bare Metal and Containerized Storage
Red Hat OpenShift on Bare Metal and Containerized StorageRed Hat OpenShift on Bare Metal and Containerized Storage
Red Hat OpenShift on Bare Metal and Containerized Storage
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriver
 
Manual Testing
Manual TestingManual Testing
Manual Testing
 
What is Visual Studio Code?
What is Visual Studio Code?What is Visual Studio Code?
What is Visual Studio Code?
 
Presentation on mobile app testing
Presentation on mobile app testingPresentation on mobile app testing
Presentation on mobile app testing
 
Selenium
SeleniumSelenium
Selenium
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Automated Test Framework with Cucumber
Automated Test Framework with CucumberAutomated Test Framework with Cucumber
Automated Test Framework with Cucumber
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Appium
AppiumAppium
Appium
 
Stlc ppt
Stlc pptStlc ppt
Stlc ppt
 
Test automation
Test automationTest automation
Test automation
 
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Complete guide to manual testing@uma
Complete guide to manual  testing@umaComplete guide to manual  testing@uma
Complete guide to manual testing@uma
 

Viewers also liked (6)

Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
FIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and UglyFIT and JBehave - Good, Bad and Ugly
FIT and JBehave - Good, Bad and Ugly
 
Jbehave + serenity
Jbehave + serenityJbehave + serenity
Jbehave + serenity
 
BDD using JBehave
BDD using JBehaveBDD using JBehave
BDD using JBehave
 
Cucumber ppt
Cucumber pptCucumber ppt
Cucumber ppt
 
Model storming
Model stormingModel storming
Model storming
 

Similar to BDD with JBehave and Selenium

eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
vstorm83
 
Qtp interview questions
Qtp interview questionsQtp interview questions
Qtp interview questions
Ramu Palanki
 
Qtp interview questions
Qtp interview questionsQtp interview questions
Qtp interview questions
Ramu Palanki
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
divzi1913
 

Similar to BDD with JBehave and Selenium (20)

Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by Example
 
Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1
 
Java EE 7 Recipes
Java EE 7 RecipesJava EE 7 Recipes
Java EE 7 Recipes
 
BDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product SuiteBDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product Suite
 
So What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With TestingSo What Do Cucumbers Have To Do With Testing
So What Do Cucumbers Have To Do With Testing
 
Apache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationApache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentation
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
Zend con 2016 bdd with behat for beginners
Zend con 2016   bdd with behat for beginnersZend con 2016   bdd with behat for beginners
Zend con 2016 bdd with behat for beginners
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
 
Django on Jython, PyCon 2009
Django on Jython, PyCon 2009Django on Jython, PyCon 2009
Django on Jython, PyCon 2009
 
10 jsp-scripting-elements
10 jsp-scripting-elements10 jsp-scripting-elements
10 jsp-scripting-elements
 
java web framework standard.20180412
java web framework standard.20180412java web framework standard.20180412
java web framework standard.20180412
 
159747608 a-training-report-on
159747608 a-training-report-on159747608 a-training-report-on
159747608 a-training-report-on
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Qtp interview questions
Qtp interview questionsQtp interview questions
Qtp interview questions
 
Qtp interview questions
Qtp interview questionsQtp interview questions
Qtp interview questions
 
Metaaso J Webframework
Metaaso J WebframeworkMetaaso J Webframework
Metaaso J Webframework
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
AngularJS Beginner Day One
AngularJS Beginner Day OneAngularJS Beginner Day One
AngularJS Beginner Day One
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

BDD with JBehave and Selenium

  • 1. Behaviour Driven Development with Java Nikolay Vasilev 15 July 2011
  • 2.
  • 3. BDD
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Testing Types and Expectations Application Levels Testing Type Expectations UI / Presentation / … Controls / Services / … Classes / Models / … Code Meets Customer’s Expectations Code Meets Programmer’s Expectations Unit Testing BDD Selenium
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. BDD Process Exercise expectations against Matches to Customer QA Domain Expert Developer
  • 17.
  • 18.
  • 19.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76. JBehave - Pros and Cons
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83. Thank you for your attention!

Editor's Notes

  1. Bulgarian Java Users Group
  2. Use Case - description of steps or actions between a user (or "actor") and a software system which leads the user towards something useful. User Story -  one or more sentences in the everyday or business language of the end user that captures what the user wants to achieve. Each user story is limited, so it fits on a small paper note card to ensure that it does not grow too large. A user story is an informal statement of the requirement as long as the correspondence of  acceptance testing procedures  is lacking. Bulgarian Java Users Group
  3. Bulgarian Java Users Group
  4. - ConfigurableEmbedder - allows the specification of the Configuration and CandidateSteps InjectableEmbedder -  allows the injection of a fully specified Embedder JUnitStory - provides a one-to-one mapping with the textual story JUnitStories - provides a many-to-one mapping with the textual story paths explicitly specified by overriding the  storyPaths()  method. Bulgarian Java Users Group
  5. Existing Projects into Workspace Bulgarian Java Users Group
  6. Existing Projects into Workspace Bulgarian Java Users Group
  7. Existing Projects into Workspace Bulgarian Java Users Group
  8. Existing Projects into Workspace Bulgarian Java Users Group
  9. Bulgarian Java Users Group
  10. Existing Projects into Workspace Bulgarian Java Users Group
  11. Bulgarian Java Users Group
  12. Bulgarian Java Users Group
  13. Bulgarian Java Users Group
  14. Bulgarian Java Users Group
  15. Bulgarian Java Users Group
  16. Bulgarian Java Users Group
  17. Bulgarian Java Users Group
  18. Bulgarian Java Users Group
  19. Bulgarian Java Users Group
  20. Bulgarian Java Users Group
  21. Bulgarian Java Users Group
  22. Bulgarian Java Users Group
  23. Bulgarian Java Users Group
  24. Bulgarian Java Users Group
  25. Bulgarian Java Users Group
  26. Bulgarian Java Users Group
  27. Bulgarian Java Users Group
  28. Bulgarian Java Users Group
  29. Bulgarian Java Users Group
  30. Bulgarian Java Users Group
  31. Bulgarian Java Users Group