SlideShare a Scribd company logo
1 of 21
BDD and Cucumber based
Test Automation Frameworks
Harsh Murari
harsh@rhoynar.com
Software Architect
Rhoynar Software Consulting, Boulder, CO
www.rhoynar.com
Presented At SQUAD Meetup at Denver, CO, Oct 11, 2016
Job Announcements Oct 11, 2016
• Senior PHP Developer: PHP, LAMP, CodeIgnitor,WebStorm
• QA Automation Engineer (Boston Area): Java,TestNG, Selenium WebDriver
About Me
• Co-founder and Software Architect at Rhoynar Software Consulting
(www.rhoynar.com)
• Working on Application Development, QA Automation andTest
Automation Solutions
• 12+ years of Software Engineering Experience
About Rhoynar Software Consulting
Founded in 2015, providing QA automation and Continuous Delivery Services for
clients in Denver/Boulder area.
Contact Us:
Web: www.rhoynar.com
Ph.: +1-855-5-RHOYNAR
Email: contact@rhoynar.com
• Consulting: Application Development,
QA Automation and DevOps
• Staffing: Highly Experienced
Candidates
• Training: 3-5 days customized training
courses
AboutThis Presentation: Objectives
• Motivation and Background:
• Open-source initiatives from Rhoynar
• Continuous Integration Infrastructure
• Email NotificationVerification
• AutoTestR – Automatic Page Object Generation
• BDD and Cucumber
• Overview of BDD – Behavior Driven Development Model and Cucumber
• Integration of SeleniumWebDriver, Page Objects and Models Design Pattern
• BDD andTest Automation Best Practices
• BDD Demo
Open Source Initiatives
From Rhoynar
: https://github.com/Rhoynar
Continuous Integration Infrastructure
https://github.com/Rhoynar/ci-infra
CI Infra Workflow
https://github.com/Rhoynar/ci-infra
AutoTestR –
Page ObjectAuto Generation
• AutoTestR uses node.js framework to parse
the DOM for the page and generate
corresponding test object code.
https://github.com/Rhoynar/AutoTestR
AutoTestR Graph BasedTest Case Generation
- Each node represents a page-object
(or rather business object)
- Each node specifies what are its
exported interfaces, what are its next
states
- Based on this graph, AutoTestR
auto-generates test case skeletons
as well!
- ExampleTest Cases:
- Login->Unregistered Page
- Login->Main Page->CreateUser->End
- Login->Main Page->SearchUser->End
- Login->Main Page->DeleteUser->End
- Login->Main Page->Unregistered Page
https://github.com/Rhoynar/AutoTestR
EmailVerify:Verify Email Notification Receipt
UseCase
- Web Application Sends a Notification/Email to Users
- Test Automation Wants toVerify if Email has been
received?
- Email with certain Subject Line has been received?
- Email with certain content has been received? Etc
https://github.com/Rhoynar/EmailVerify
Use EmailVerify Library
- Simple to use: startMonitor(),
verify(), stopMonitor()
- Multiple variations of use-cases and
regular expression parsing support!
BDD/Cucumber based QA-
Automation Framework
https://github.com/Rhoynar/qa-automation
• Project for barebones QA Automation Development Using:
• Java
• BDD
• Cucumber
• TestNG
• Maven
What is BDD (Behavior Driven Development)?
• BDD Keeps Business Behavior in sync with Software Development
• ExtendsTest Driven Development to cover BusinessAcceptanceTests
How can I write tests without actual code?
• BDD Uses Simple English Syntax (Gherkin)
• BDD uses example based ‘Scenarios’
• Each ‘Scenario’ is noted in the form of ’Given’, ‘When’, ‘Then’
Outside In Approach
• Start with a
conversation
• Determine the
business value
• Provide Examples
of use
BDD Example:
Simple Login Scenario
Step Definitions
Does this only work withWeb Based Applications?
• BDD can be work with any type of application!
• We recently used BDD to load builds onto Android Device.
Scenario: Load Android Build onto device
Given Device is Connected
When I load the build
Then Device is detected in ADB
Automatic Conversion to Code
public void device_is_connected() {…}
public void i_load_the_build() {…}
public void device_detected_in_adb() {…}
Building Blocks of Scenarios
• BDD Allows to build on top of existing scenarios easily
• Existing step-defs can be re-used, only new steps need to be written
• Less Code Repetition – better regression framework
Scenario: Load Android Build onto device
Given Device is Connected
When I load the build
And I reset the device
Then Device is detected in ADB
With only one additional step, I have a new test case
public void device_is_connected() {…}
public void i_load_the_build() {…}
public void i_reset_device(){…}
public void device_detected_in_adb() {…}
Demo
• Yahoo Login Example
• Source Code: https://github.com/Rhoynar/qa-automation
Summary
• BDD minimizes communications, hides implementation details and
provides robust regression tests.
• BDD Provides Building blocks of scenarios and step-definitions, so
incremental test can be written easily.
Contact Us:
Rhoynar Software Consulting
Web: www.rhoynar.com
Ph.: +1-855-5-RHOYNAR
Email: contact@rhoynar.com
Consulting
QA Automation, DevOps and
Application Development
Staffing
Highly qualified and tech-
screened candidates
Training
Customized onsite training
events on latest technologies

More Related Content

What's hot

BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumberDaniel Kummer
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Mindfire Solutions
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)Suman Guha
 
What Is Cucumber?
What Is Cucumber?What Is Cucumber?
What Is Cucumber?QATestLab
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkinArati Joshi
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)Rohit Bisht
 
Test automation
Test automationTest automation
Test automationXavier Yin
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test AutomationPekka Klärck
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDDKnoldus Inc.
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriverAnuraj S.L
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and SeleniumKarapet Sarkisyan
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.pptAna Sarbescu
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing processGloria Stoilova
 
BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 

What's hot (20)

Automated Test Framework with Cucumber
Automated Test Framework with CucumberAutomated Test Framework with Cucumber
Automated Test Framework with Cucumber
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumber
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
 
Cucumber & gherkin language
Cucumber & gherkin languageCucumber & gherkin language
Cucumber & gherkin language
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
 
What Is Cucumber?
What Is Cucumber?What Is Cucumber?
What Is Cucumber?
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkin
 
Cucumber presenation
Cucumber presenationCucumber presenation
Cucumber presenation
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
 
Test automation
Test automationTest automation
Test automation
 
Gherkin /BDD intro
Gherkin /BDD introGherkin /BDD intro
Gherkin /BDD intro
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDD
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriver
 
Test Automation and Selenium
Test Automation and SeleniumTest Automation and Selenium
Test Automation and Selenium
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing process
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 

Viewers also liked

Bdd with Cucumber-jvm. Java Day, Kiev 2015
Bdd with Cucumber-jvm. Java Day, Kiev 2015Bdd with Cucumber-jvm. Java Day, Kiev 2015
Bdd with Cucumber-jvm. Java Day, Kiev 2015TSundberg
 
Hands on BDD with cucumber - Agile Goa Sept 2013
Hands on BDD with cucumber -  Agile Goa Sept 2013Hands on BDD with cucumber -  Agile Goa Sept 2013
Hands on BDD with cucumber - Agile Goa Sept 2013Sonik Chopra
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka bddPrince Gupta
 
Produzione software - La configurazione
Produzione software - La configurazioneProduzione software - La configurazione
Produzione software - La configurazioneGemax Consulting
 
BDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenBDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenRiverGlide
 
DevOps : Consulting with Foresight
DevOps : Consulting with ForesightDevOps : Consulting with Foresight
DevOps : Consulting with ForesightInfoSeption
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentQASymphony
 
Introducing GlobalLogic (company presentation)
Introducing GlobalLogic (company presentation)Introducing GlobalLogic (company presentation)
Introducing GlobalLogic (company presentation)Valentin Boinitski
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bddantannatna
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Vishal Biyani
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaSeb Rose
 

Viewers also liked (13)

Bdd with Cucumber-jvm. Java Day, Kiev 2015
Bdd with Cucumber-jvm. Java Day, Kiev 2015Bdd with Cucumber-jvm. Java Day, Kiev 2015
Bdd with Cucumber-jvm. Java Day, Kiev 2015
 
Hands on BDD with cucumber - Agile Goa Sept 2013
Hands on BDD with cucumber -  Agile Goa Sept 2013Hands on BDD with cucumber -  Agile Goa Sept 2013
Hands on BDD with cucumber - Agile Goa Sept 2013
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka bdd
 
Produzione software - La configurazione
Produzione software - La configurazioneProduzione software - La configurazione
Produzione software - La configurazione
 
Mobile Smart Streaming
Mobile Smart StreamingMobile Smart Streaming
Mobile Smart Streaming
 
BDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenBDD - beyond: Given, When and Then
BDD - beyond: Given, When and Then
 
DevOps : Consulting with Foresight
DevOps : Consulting with ForesightDevOps : Consulting with Foresight
DevOps : Consulting with Foresight
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven Development
 
Introducing GlobalLogic (company presentation)
Introducing GlobalLogic (company presentation)Introducing GlobalLogic (company presentation)
Introducing GlobalLogic (company presentation)
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bdd
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for Java
 

Similar to Test Automation Framework with BDD and Cucumber

automation framework
automation frameworkautomation framework
automation frameworkANSHU GOYAL
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and MochaAtish Narlawar
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterAmazon Web Services
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
Automate Software Deployments on EC2 with AWS CodeDeploy
Automate Software Deployments on EC2 with AWS CodeDeployAutomate Software Deployments on EC2 with AWS CodeDeploy
Automate Software Deployments on EC2 with AWS CodeDeployAmazon Web Services
 
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...Denim Group
 
Philip Shurpik "Architecting React Native app"
Philip Shurpik "Architecting React Native app"Philip Shurpik "Architecting React Native app"
Philip Shurpik "Architecting React Native app"Fwdays
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsAmazon Web Services
 
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...KMS Technology
 
[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...
[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...
[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...indeedeng
 
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Amazon Web Services
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...Amazon Web Services
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoAmazon Web Services
 

Similar to Test Automation Framework with BDD and Cucumber (20)

automation framework
automation frameworkautomation framework
automation framework
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless World
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
Resume(1)
Resume(1)Resume(1)
Resume(1)
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
Automate Software Deployments on EC2 with AWS CodeDeploy
Automate Software Deployments on EC2 with AWS CodeDeployAutomate Software Deployments on EC2 with AWS CodeDeploy
Automate Software Deployments on EC2 with AWS CodeDeploy
 
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
 
Philip Shurpik "Architecting React Native app"
Philip Shurpik "Architecting React Native app"Philip Shurpik "Architecting React Native app"
Philip Shurpik "Architecting React Native app"
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
 
[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...
[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...
[@IndeedEng] Engineering Velocity: Building Great Software Through Fast Itera...
 
Coding Naked 2023
Coding Naked 2023Coding Naked 2023
Coding Naked 2023
 
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
 
AWS Code Services
AWS Code ServicesAWS Code Services
AWS Code Services
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
 

Recently uploaded

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 MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Recently uploaded (20)

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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Test Automation Framework with BDD and Cucumber

  • 1. BDD and Cucumber based Test Automation Frameworks Harsh Murari harsh@rhoynar.com Software Architect Rhoynar Software Consulting, Boulder, CO www.rhoynar.com Presented At SQUAD Meetup at Denver, CO, Oct 11, 2016
  • 2. Job Announcements Oct 11, 2016 • Senior PHP Developer: PHP, LAMP, CodeIgnitor,WebStorm • QA Automation Engineer (Boston Area): Java,TestNG, Selenium WebDriver
  • 3. About Me • Co-founder and Software Architect at Rhoynar Software Consulting (www.rhoynar.com) • Working on Application Development, QA Automation andTest Automation Solutions • 12+ years of Software Engineering Experience
  • 4. About Rhoynar Software Consulting Founded in 2015, providing QA automation and Continuous Delivery Services for clients in Denver/Boulder area. Contact Us: Web: www.rhoynar.com Ph.: +1-855-5-RHOYNAR Email: contact@rhoynar.com • Consulting: Application Development, QA Automation and DevOps • Staffing: Highly Experienced Candidates • Training: 3-5 days customized training courses
  • 5. AboutThis Presentation: Objectives • Motivation and Background: • Open-source initiatives from Rhoynar • Continuous Integration Infrastructure • Email NotificationVerification • AutoTestR – Automatic Page Object Generation • BDD and Cucumber • Overview of BDD – Behavior Driven Development Model and Cucumber • Integration of SeleniumWebDriver, Page Objects and Models Design Pattern • BDD andTest Automation Best Practices • BDD Demo
  • 6. Open Source Initiatives From Rhoynar : https://github.com/Rhoynar
  • 9. AutoTestR – Page ObjectAuto Generation • AutoTestR uses node.js framework to parse the DOM for the page and generate corresponding test object code. https://github.com/Rhoynar/AutoTestR
  • 10. AutoTestR Graph BasedTest Case Generation - Each node represents a page-object (or rather business object) - Each node specifies what are its exported interfaces, what are its next states - Based on this graph, AutoTestR auto-generates test case skeletons as well! - ExampleTest Cases: - Login->Unregistered Page - Login->Main Page->CreateUser->End - Login->Main Page->SearchUser->End - Login->Main Page->DeleteUser->End - Login->Main Page->Unregistered Page https://github.com/Rhoynar/AutoTestR
  • 11. EmailVerify:Verify Email Notification Receipt UseCase - Web Application Sends a Notification/Email to Users - Test Automation Wants toVerify if Email has been received? - Email with certain Subject Line has been received? - Email with certain content has been received? Etc https://github.com/Rhoynar/EmailVerify Use EmailVerify Library - Simple to use: startMonitor(), verify(), stopMonitor() - Multiple variations of use-cases and regular expression parsing support!
  • 12. BDD/Cucumber based QA- Automation Framework https://github.com/Rhoynar/qa-automation • Project for barebones QA Automation Development Using: • Java • BDD • Cucumber • TestNG • Maven
  • 13. What is BDD (Behavior Driven Development)? • BDD Keeps Business Behavior in sync with Software Development • ExtendsTest Driven Development to cover BusinessAcceptanceTests
  • 14. How can I write tests without actual code? • BDD Uses Simple English Syntax (Gherkin) • BDD uses example based ‘Scenarios’ • Each ‘Scenario’ is noted in the form of ’Given’, ‘When’, ‘Then’
  • 15. Outside In Approach • Start with a conversation • Determine the business value • Provide Examples of use
  • 16. BDD Example: Simple Login Scenario Step Definitions
  • 17. Does this only work withWeb Based Applications? • BDD can be work with any type of application! • We recently used BDD to load builds onto Android Device. Scenario: Load Android Build onto device Given Device is Connected When I load the build Then Device is detected in ADB Automatic Conversion to Code public void device_is_connected() {…} public void i_load_the_build() {…} public void device_detected_in_adb() {…}
  • 18. Building Blocks of Scenarios • BDD Allows to build on top of existing scenarios easily • Existing step-defs can be re-used, only new steps need to be written • Less Code Repetition – better regression framework Scenario: Load Android Build onto device Given Device is Connected When I load the build And I reset the device Then Device is detected in ADB With only one additional step, I have a new test case public void device_is_connected() {…} public void i_load_the_build() {…} public void i_reset_device(){…} public void device_detected_in_adb() {…}
  • 19. Demo • Yahoo Login Example • Source Code: https://github.com/Rhoynar/qa-automation
  • 20. Summary • BDD minimizes communications, hides implementation details and provides robust regression tests. • BDD Provides Building blocks of scenarios and step-definitions, so incremental test can be written easily.
  • 21. Contact Us: Rhoynar Software Consulting Web: www.rhoynar.com Ph.: +1-855-5-RHOYNAR Email: contact@rhoynar.com Consulting QA Automation, DevOps and Application Development Staffing Highly qualified and tech- screened candidates Training Customized onsite training events on latest technologies