SlideShare a Scribd company logo
1 of 72
Download to read offline
Mastering Behavior Driven Development
Workshop & Tutorial
© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Eran Kinsbruner
@ek121268, http://continuoustesting.blog
About Me
• Lead Technical Evangelist at Perfecto
• Blogger and Speaker
• http://mobiletestingblog.com
• https://www.infoworld.com/author/Eran-
Kinsbruner/
• 18+ Years in Development & Testing
• Author of The Digital Quality Handbook
To get your copy of the book, come by the Perfecto Booth
Agenda
Learning Objectives:
• What is BDD and its key advantages and disadvantages.
• What are the material differences in test automation between Mobile, Web and Responsive apps.
• How to build a BDD project that is based on a page object model that runs in parallel on various platforms.
Tutorial Outline:
• An Intro to BDD
• What is driving a shift to such software development practice
• Who are the stakeholders that make BDD process work
• What are the differences between BDD and formal software development life cycle
• BDD 101
• What are feature files, step definition (glue code), scenarios, background, DDT, Tagging, and a BDD project structure
(Gherkin)
• Working with mobile and web objects and page object model within BDD
• Available tools and frameworks in the market that supports BDD (e.g. Serenity BDD, Cucumber, Protractor, and more)
• BDD in the Cloud (quantum project reference)
• Configure a BDD project for responsive web and mobile apps to run in parallel in the cloud
• Leverage reporting to maximize quality productivity
• BDD and Visual Analysis
• Quantum & Applitools how to
• BDD Markdown Framework – Gauge.org
There’s a Paradigm Shift in Software Development
5/22/2018 4© 2015, Perfecto Mobile Ltd. All Rights Reserved.
+
Quality Is Everyone's ‘Problem’
DevOps == Continuous Everything
5/22/2018 6© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Credit: TestingWhiz
1
2
3 4
Approaches to DevOps Testing
Coverage
DailySprint
Smoke
Full
Coverage
before
Robustness
Robustness
Before
Coverage
Most of the market
• Sprint level execution
• Half-way to coverage
1. Create some scripts
2. Create more scripts
3. Even more scripts
4. (Try to) run them daily
1
2
3
4
1. Create few robust scripts
2. Make sure they run daily
3. Slowly add more scripts
1. Maintain stability & visibility
4. Add more scripts
• Too many failures
• Too much time spent on analysis
Test Coverage Principles
© 2015, Perfecto Mobile Ltd. All Rights Reserved.
A Day in A Life – Covering Real Environments Should be Part of Your Coverage Planning
12/3/2016
System/Network Conditions
• Battery not full
• Location Services Active
• 4G Network/No Wi-Fi
• System level is important
Background Notifications
• Messages
• News app notifications
• Sport apps notifications
• Emails alerts
• Social (Facebook) alerts
The Coverage Cube
5/22/2018 10© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Mobile Platform Share – Quality is a Moment in Time
5/22/2018 11© 2015, Perfecto Mobile Ltd. All Rights Reserved.
3 OS Families Required to Support
3 - 4 OS Families to Support
Some Real Life Example
5/22/2018 12© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Worldwide Distribution
5/22/2018 13© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Assuring UX Has Never Been More Important
Mobile & Web- Test Coverage Principles
Platform Specific Coverage Recommendations
5/22/2018 16© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Coverage Planning Tools
5/22/2018 17© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Coverage Planning Tools
5/22/2018 18© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Reality Check: The Broken Promise of Automation
(Key Challenges)
Plethora of
Test
Frameworks
But
Parallel testing
across
platform is a
hard to achieve
goal
Flakiness of
tests slows
down release
trains (test
issues, lab
issues)
Automation
coverage is
limited due to
test framework
supported
features
Timely support for
new
features/platform
s is an issue
Execution
performance
/speed is
inconsistent
across
frameworksThere is no
support for
non-functional
testing within
the key
frameworks
Green build
isn’t a normal
- The level of
trust in
testing by dev
is low
Feedback
loop and
reporting -
hard to
manage
Still a lot of
manual
testing
No
guidelines
around
writing
“Good” test
code
Quantity
over
Quality is
still a valid
and !right
metric
5/22/2018 19© 2015, Perfecto Mobile Ltd. All Rights Reserved.
TDD & BDD – Path to Advanced Agile Testing
5/22/2018 20© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Source: Use DevOps And Supply Chain Principles To
Automate Application Delivery Governance
Christopher Condo and Diego Lo Giudice (Forrester)
December 8, 2017
BDD Definition – By Wikipedia
• In software engineering, behavior-driven development (BDD) is a software development
process that emerged from test-driven development (TDD).[1][2][3][vague]Behavior-driven development
combines the general techniques and principles of TDD with ideas from domain-driven
design and object-oriented analysis and design to provide software development and management
teams with shared tools and a shared process to collaborate on software development.[1][4]
• BDD is largely facilitated through the use of a simple domain-specific language (DSL) using natural
language constructs (e.g., English-like sentences) that can express the behavior and the expected
outcomes. Test scripts have long been a popular application of DSLs with varying degrees of
sophistication. BDD is considered an effective technical practice especially when the "problem space"
of the business problem to solve is complex.
BDD method has crossed the chasm
Source: InfoQ
ATDD
5/22/2018 23© 2015, Perfecto Mobile Ltd. All Rights Reserved.
BDD, The 3 Amigos and TDD
Definition
• Three amigos refers to the primary perspectives to examine an increment
of work before, during, and after development. Those perspectives are:
• Business - What problem are we trying to solve?
• Development - How might we build a solution to solve that problem?
• Testing - What about this, what could possibly happen?
Differences Between TDD, ATDD, and BDD
• TDD is rather a paradigm than a process. It describes the
cycle of writing a test first, and application code afterwards –
followed by an optional refactoring.
• TDD doesn’t make any statements about: Where do I begin
to develop? What exactly should I test? How should tests be
structured and named?
• BDD always start with the piece of functionality that’s most
important to your user.
• TDD and BDD have language differences, BDD tests are
written in an English-like language.
• BDD is customer-focused while ATDD leans towards the
developer-focused side of things like [Unit]TDD does. This
allows much easier collaboration with non-techie
stakeholders, than TDD.
• BDD gives a clearer understanding as to what the system
should do from the perspective of the developer and the
customer.
• BDD focuses on the behavioral aspect of the system unlike
TDD that focuses on the implementation aspect of the
system.
• ATDD focuses on capturing requirements in acceptance
tests and uses them to drive the development. (Does the
system do what it is required to do?)
• TDD tools and techniques are usually much more techie in
nature, requiring that you become familiar with the detailed
object model (or in fact create the object model in the
process, if doing true test-first canonical TDD).
• TDD allows a good and robust design, still, your tests can be
very far away of the users requirements. BDD is a way to
ensure consistency between requirements and the
developer tests.
• TDD allows a good and robust design, still, your tests can be
very far away of the users requirements. BDD is a way to
ensure consistency between requirements and the
developer tests.
5/22/2018 25© 2015, Perfecto Mobile Ltd. All Rights Reserved.
BDD Traditional Workflow (John Ferguson Smart)
5/22/2018 26© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Source: John Ferguson Smart Post
Advantages & Disadvantages of Using BDD
Expected Benefits
• Builds a shared understanding about the intent of an increment
of work.
• Easy ramp up from a skillset perspective
• Multi language & IDE support (Java, Ruby)
• Various mobile and web supporting frameworks
• Identifies misunderstandings and confusion early and allows
learning to happen sooner in the delivery of an increment of
work.
• Provides a reasonable guard rail for the number of people who
should be involved in discussions about any given increment of
work.
Advantages & Disadvantages of Using BDD
Disadvantages & Common Pitfalls
• While syncing various personas, Doesn’t employ traditional SW
development processes
• Dependent on available coding skillset within the team (step definition
development)
• Maintenance and cross platform robust test coding is often a challenge
• Limiting three amigo discussions to only three people. If there are other
stakeholders who are relevant to a particular increment of work, include
them in the discussion.
• Three amigo discussions become regularly scheduled meetings and are
treated as another ceremony for the team to do instead of as a handy
guide of what perspectives should be included in a discussion about a
particular increment of work.
Here is a sample Gherkin document:
Feature: Refund item
Scenario: Jeff returns a faulty microwave
Given Jeff has bought a microwave for $100 And he has a receipt
When he returns the microwave
Then Jeff should be refunded $100
In Gherkin, each line that isn't blank has to start with a Gherkin keyword, followed by any text you like.
The main keywords are:
• Feature
• Scenario
• Given, When, Then, And, But (Steps)
• Background
• Scenario Outline
• Examples
There are a few extra keywords as well:
• """ (Doc Strings)
• | (Data Tables)
• @ (Tags)
• # (Comments)
Gherkin Syntax
https://cucumber.io/docs/reference
Gherkin Syntax – Features, Scenario’s & Steps
• Features describe in an high level a single feature of the system
e.g. “Login to the app” and to group to it set of related scenario’s
• Scenario’s are specific business rules related to the feature
• Describe an initial context
• Describe an event
• Describe an expected outcome
• Steps are usually defined using Given, When and Then and
construct the body of the scenario.
• There are some recommended practices around the # of Given and When
within a single scenario. To many == split your scenario
• Then usually would describe the expected outcome followed by an Assertion
or validation (Object based or Visual based).
Diving Into Gherkin – Use of Background’s
Instead of repeating Given steps across multiple scenario’s,
Include the repetitive Given/s in the Background section
Diving Into Gherkin – Use of Runners (Junit/TestNG)
Diving Into Gherkin – Scenario’s vs. Scenario Outline
A container for a table
Doc Strings and Data Tables
Doc strings (“””) are used to pass large string of text to a step definition
Data tables are used to pass a list of values to a step definition
Tagging and RTDD
Use of tags (@) above Features, Scenarios allow classifying and
grouping what’s above the tag. E.g. – a tag placed above a
Feature means that all scenarios below that feature get the tag.
Cucumber Support Multiple Languages (Step Definition)
POM - Benefits
One Place
Change
Model Pages in
Code
Reduce Code
Duplication
Simulate User
Actions
Snippets of
Page
POM - Example
Scenario: Sign in and sign out
When I open automationpractice website
And I sign in
Then I sign out
POM - Example
Cucumber.IO
5/22/2018 40© 2015, Perfecto Mobile Ltd. All Rights Reserved.
BDD Test Management
Teams can chose commercial tools (TestRail e.g.) or embed BDD
into their Build/CI tool chain
• Build Tools
• Gradle, Maven
• CI Tools
• Jenkins, Team City, Bamboo
BDD for iOS – XCFit & Cucumberish
XCFit is a pure Swift implementation to support BDD inside XCode projects. It also gives
XCode templates to get started with BDD, Page Object Pattern and Protocol Oriented
pattern. XCFit has some pre-defined steps inside Swift frameworks but the quick benefit
comes from XCode templates. More information on Protocol Oriented BDD here. Again
major drawback is we cannot write or execute .feature files and lacks many core
cucumber features like tags, filtering features.
Cucumberish is a test framework that can be used to write features in Gherkin format and
can be executed from XCode. Cucumberish is written Objective-C and uses Objective-C
Gherkin parser from Cucumber repository. Its great to be able to execute Gherkin feature files
from XCode but Cucumberish has some bugs and needs workarounds for most cases. Also
it’s a bit tricky to introduce Objective-C dependency in the fully Swift Project. Cucumberish
can be imported to UI Test target using CocoaPods or Carthage.
BDD for iOS – XCFit & Cucumberish
BDD for iOS – XCFit & Cucumberish
The XCFit predefined Steps are grouped by
• Application Launcher Steps
• User Actions
• Waiter Actions
• Assertions
Follow to learn more:
https://github.com/Shashikant86
Introduction to Quantum
Architecture
Perfecto Report
Object Spy
Repository
file
Live dashboard
Cucumber BDD test
Test Java code
testNG
Perfecto utils
Pre define steps
User
advance
code
Script creation Execute Report
Access to devices
Remote debugging
Real devices and browsers
Manual services
BDD – Cucumber
Test -Feature files
Pre define steps
by Perfecto
Logical steps
created by
customers
BDD – Steps definition
Test -Feature files
Pre define steps
by Perfecto
Logical steps
created by
customers
BDD – Object Repository
objectID = locatorID = locator
BDD – components
Test -Feature files
Pre define steps
by Perfecto
(Low Level)
Logical steps
created by
customers
• Standard BDD – cucumber
• Auto complete using standard Cucumber
plugin
Requirements from user:
• Identify elements and add to
repository
• Build flow by using low level and
logical functions
code– components
Test -Feature files
Pre define steps
by Perfecto
Logical steps
created by
customers
• Customer code
• Standard java code
• Focused only on the test actions and
validations
• QAF manage
• Driver init
• getDriver() – provide the exiting driver
• Object repository
• Predefine functions (sendKey, assertText,…)
• Integration with DigitalZoom™ execution and
steps (no code need to be added)
• Perfecto
• Utils code with specific commands like (WT,
swipe)
Project structure
BDD
Logical commands
Java tests for java coder testers
Perfecto extensions
TestNG execution
Data repository
Cloud / app configuration file
Project config file – driver
Appium
Selenium
Execution – Threads and
devices
Each test = new thread with the requested device
Thread 1
iOS
Thread 2
Android
Quantum
Area Components Quantum
Management
Reporting
Execution Manager
Test
Development
Test Authoring
(IDE+Language)
Object Repository
Object Locator/Spy
Appium/Selenium
✓OSS
=
✓OSS
✓OSS
http://projectQuantum.io
Sample Project Demo (RWD)
Sample Visual Testing Demo
© 2015, Perfecto Mobile Ltd. All Rights Reserved.
BDD Tools Landscape
http://fitnesse.org/FrontPage
https://cucumber.io/ http://jbehave.org/
http://www.thucydides.info/#/
http://specflow.org/
https://mochajs.org/
https://gauge.org/
Gauge Intro
• Installation
• Install Chocolatey (CMD.exe, Admin mode)
• “@"%SystemRoot%System32WindowsPowerShellv1.0powershell.exe" -NoProfile -InputFormat
None -ExecutionPolicy Bypass -Command "iex ((New-Object
System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET
"PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin”
• From windows CMD.exe run
• “choco install gauge”
• Choose the language of choice (Java, C#, Ruby)
• "gauge init java” or “gauge init java_maven_selenium”
• Write your Specs & Run them
• Markdown Syntax that includes: Specifications, Scenarios, Steps and Tags
• “gauge run specs”
5/22/2018 58© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Gauge Intro – Continue
5/22/2018 59© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Gauge Intro – Continue
5/22/2018 60© 2015, Perfecto Mobile Ltd. All Rights Reserved.
gauge run specs/Example.spec:[scenario in line XX]
Gauge Intro – Continue
5/22/2018 61© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Gauge Intro – Connect to The Cloud
• Configure in IntelliJ Env. Variables
• PERFECTO_CLOUD
• PERFECTO_USERNAME
• PERFECTO_SECURITY_TOKEN
• Properly define the target platform under test in the
DriverFactory.java
• Implement your SPEC test and its required methods (Selenium)
• Execute!
5/22/2018 62© 2015, Perfecto Mobile Ltd. All Rights Reserved.
JS Acceptance Testing with Codecept.JS
5/22/2018 63© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Source: Codecept.JS Git
Mocha.JS Intro
5/22/2018 64© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Jbehave Intro & Composite Steps
5/22/2018 65© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Combine 2 step definitions with parameters
Using @Composite annotation
Suggested BDD Tools Selection Criteria
Tool Selection Case Study (Model) (USAA)
• Define needed capabilities
5/22/2018 67© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Selection Criteria
End to End Testing
BDD/ATDD Friendly
Tool Documentation
Visual Navigation Testing
USAA Tool Selection
• Define needed capabilities
• Identify importance (weight capabilities)
5/22/2018 68© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Weight Key
1 – Low importance
3 – Medium importance
5 – High importance
Weight Selection Criteria
5 (High importance) End to End Testing
3 (Medium importance) BDD/ATDD Friendly
5 (High importance) Tool Documentation
1 (Low importance) Visual Navigation Testing
USAA Tool Selection
• Define needed capabilities
• Identify importance (weight capabilities)
• Define scoring key
5/22/2018 69© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Scoring Key
0 – Did not meet expectations
2 – Met expectations
3 – Exceeded expectations
Weight Selection Criteria Tool X Tool Y Tool Z
5 (High importance) End to End Testing 3 3 3
3 (Medium importance) BDD/ATDD Friendly 3 2 3
5 (High importance) Tool Documentation 0 2 2
1 (Low importance) Visual Navigation Testing 3 3 2
USAA Tool Selection
• Define needed capabilities
• Identify importance (weight capabilities)
• Define scoring key
5/22/2018 70© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Weight Selection Criteria Tool X (weighted) Tool Y (weighted) Tool Z (weighted)
5 (High importance) End to End Testing 3 5 x 3 = 15 3 5 x 3 = 15 3 5 x 3 = 15
3 (Medium importance) BDD/ATDD Friendly 3 3 x 3 = 9 2 3 x 2 = 6 3 3 x 3 = 9
5 (High importance) Tool Documentation 0 5 x 0 = 0 2 5 x 2 = 10 2 5 x 2 = 10
1 (Low importance) Visual Navigation Testing 3 1 x 3 = 3 3 1 x3 = 3 2 1 x 2 = 2
Total 27 34 36
Scoring Key
0 – Did not meet expectations
2 – Met expectations
3 – Exceeded expectations
Open Discussion
• Challenges with BDD
• R&D dependency?
• Reports?
• Integrations to tool suites?
• Requirements and backlog alignment?
• Cross-team efficiency and sync?
• Is BDD a transitional phase in your organization or end-goal?
• Metrics used for BDD success?
• What is the future of BDD?
• Other?
5/22/2018 71© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Thank You
Eran Kinsbruner
@ek121268
http://continuoustesting.blog

More Related Content

What's hot

Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Agile India
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WaySmartBear
 
Teaching Kids Programming
Teaching Kids ProgrammingTeaching Kids Programming
Teaching Kids ProgrammingLynn Langit
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012Justin Gordon
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Ajay Danait
 
Dietmar Strasser - Traditional QA meets Agile Development
Dietmar Strasser -  Traditional QA meets Agile DevelopmentDietmar Strasser -  Traditional QA meets Agile Development
Dietmar Strasser - Traditional QA meets Agile DevelopmentTEST Huddle
 
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieHey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieQA or the Highway
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projectssriks7
 
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...Agile Software Community of India
 
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...agil8 Ltd
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereDaniel Davis
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETjbandi
 
A Journey from DevOps to DevTestOps: Infusing Continuous Quality
A Journey from DevOps to DevTestOps: Infusing Continuous QualityA Journey from DevOps to DevTestOps: Infusing Continuous Quality
A Journey from DevOps to DevTestOps: Infusing Continuous QualityTechWell
 
Code quality as a built-in process
Code quality as a built-in processCode quality as a built-in process
Code quality as a built-in processElad Maimon
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme ProgrammingKnoldus Inc.
 

What's hot (20)

Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
Acceptance Testing for Continuous Delivery by Dave Farley at #AgileIndia2019
 
Agile Testing
Agile Testing  Agile Testing
Agile Testing
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
 
Teaching Kids Programming
Teaching Kids ProgrammingTeaching Kids Programming
Teaching Kids Programming
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 
Journey of atdd
Journey of atddJourney of atdd
Journey of atdd
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
Dietmar Strasser - Traditional QA meets Agile Development
Dietmar Strasser -  Traditional QA meets Agile DevelopmentDietmar Strasser -  Traditional QA meets Agile Development
Dietmar Strasser - Traditional QA meets Agile Development
 
Top 10 Qualities of a QA Tester
Top 10 Qualities of a QA TesterTop 10 Qualities of a QA Tester
Top 10 Qualities of a QA Tester
 
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieHey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
DevOps in Action: How Nedbank went from quarterly to weekly releases in no ti...
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & Where
 
New model
New modelNew model
New model
 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
 
A Journey from DevOps to DevTestOps: Infusing Continuous Quality
A Journey from DevOps to DevTestOps: Infusing Continuous QualityA Journey from DevOps to DevTestOps: Infusing Continuous Quality
A Journey from DevOps to DevTestOps: Infusing Continuous Quality
 
Code quality as a built-in process
Code quality as a built-in processCode quality as a built-in process
Code quality as a built-in process
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 

Similar to Mastering BDD - Eran Kinsbruner Workshop Quest 2018

Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerQA or the Highway
 
A Roadmap to Enterprise Quality
A Roadmap to Enterprise QualityA Roadmap to Enterprise Quality
A Roadmap to Enterprise QualityJeff Bramwell
 
Test driven development v1.0
Test driven development v1.0Test driven development v1.0
Test driven development v1.0Ganesh Kondal
 
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...XBOSoft
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesNesrine Shokry
 
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
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDDDhaval Dalal
 
Training Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxTraining Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxNashet Ali
 
Tester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDTester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDDerk-Jan de Grood
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia eventXebia India
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycleDiUS
 
Jump Start Agile Testing with Acceptance Test Driven Development
Jump Start Agile Testing with Acceptance Test Driven DevelopmentJump Start Agile Testing with Acceptance Test Driven Development
Jump Start Agile Testing with Acceptance Test Driven DevelopmentTechWell
 
DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)Ahmed Misbah
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileIosif Itkin
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018Gregory Taylor
 

Similar to Mastering BDD - Eran Kinsbruner Workshop Quest 2018 (20)

Test Policy and Practices
Test Policy and PracticesTest Policy and Practices
Test Policy and Practices
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 
A Roadmap to Enterprise Quality
A Roadmap to Enterprise QualityA Roadmap to Enterprise Quality
A Roadmap to Enterprise Quality
 
Test driven development v1.0
Test driven development v1.0Test driven development v1.0
Test driven development v1.0
 
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 
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
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDD
 
Training Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptxTraining Bootcamp - MainframeDevOps.pptx
Training Bootcamp - MainframeDevOps.pptx
 
Tester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CDTester’s considerations when moving towards successful CI/CD
Tester’s considerations when moving towards successful CI/CD
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycle
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
Jump Start Agile Testing with Acceptance Test Driven Development
Jump Start Agile Testing with Acceptance Test Driven DevelopmentJump Start Agile Testing with Acceptance Test Driven Development
Jump Start Agile Testing with Acceptance Test Driven Development
 
DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
Agile testing
Agile testingAgile testing
Agile testing
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
 

More from Perfecto Mobile

QA or the Highway 2022.pptx
QA or the Highway 2022.pptxQA or the Highway 2022.pptx
QA or the Highway 2022.pptxPerfecto Mobile
 
Maturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous TestingMaturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous TestingPerfecto Mobile
 
Proven strategy for testing pw as aus-agile_testers
Proven strategy for testing pw as aus-agile_testersProven strategy for testing pw as aus-agile_testers
Proven strategy for testing pw as aus-agile_testersPerfecto Mobile
 
Shorten Business Life Cycle Using DevOps
Shorten Business Life Cycle Using DevOpsShorten Business Life Cycle Using DevOps
Shorten Business Life Cycle Using DevOpsPerfecto Mobile
 
Selenium conf india pwa 2018
Selenium conf india pwa 2018Selenium conf india pwa 2018
Selenium conf india pwa 2018Perfecto Mobile
 
Online testconf event rwd and pwa 2018
Online testconf event rwd and pwa 2018Online testconf event rwd and pwa 2018
Online testconf event rwd and pwa 2018Perfecto Mobile
 
Optimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps PipelineOptimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps PipelinePerfecto Mobile
 
Quest2018 erank optimize test automation
Quest2018 erank optimize test automationQuest2018 erank optimize test automation
Quest2018 erank optimize test automationPerfecto Mobile
 
Mapping mobileandweblandscape motb
Mapping mobileandweblandscape motbMapping mobileandweblandscape motb
Mapping mobileandweblandscape motbPerfecto Mobile
 
5 Stages of Digital Quality Maturity
5 Stages of Digital Quality Maturity5 Stages of Digital Quality Maturity
5 Stages of Digital Quality MaturityPerfecto Mobile
 
Testing Next Generation Digital Interfaces
Testing Next Generation Digital InterfacesTesting Next Generation Digital Interfaces
Testing Next Generation Digital InterfacesPerfecto Mobile
 
Raleigh User Forum Presentation
Raleigh User Forum PresentationRaleigh User Forum Presentation
Raleigh User Forum PresentationPerfecto Mobile
 
Automation challenges - 121 Test Automation Event boston
Automation challenges - 121 Test Automation Event bostonAutomation challenges - 121 Test Automation Event boston
Automation challenges - 121 Test Automation Event bostonPerfecto Mobile
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Perfecto Mobile
 
7 Keys for Unattended Test AUtomation webinar deck
7 Keys for Unattended Test AUtomation webinar deck7 Keys for Unattended Test AUtomation webinar deck
7 Keys for Unattended Test AUtomation webinar deckPerfecto Mobile
 
iOS9 Launch - Mobile Dev & Test Implications
iOS9 Launch - Mobile Dev & Test ImplicationsiOS9 Launch - Mobile Dev & Test Implications
iOS9 Launch - Mobile Dev & Test ImplicationsPerfecto Mobile
 
Continuous Quality For a 5 Star Mobile Apps Delivery
Continuous Quality For a 5 Star Mobile Apps DeliveryContinuous Quality For a 5 Star Mobile Apps Delivery
Continuous Quality For a 5 Star Mobile Apps DeliveryPerfecto Mobile
 
Mobile Test Coverage- Israel 4th meetup
Mobile Test Coverage- Israel 4th meetupMobile Test Coverage- Israel 4th meetup
Mobile Test Coverage- Israel 4th meetupPerfecto Mobile
 
Mobile test automation perfecto star east
Mobile test automation perfecto star eastMobile test automation perfecto star east
Mobile test automation perfecto star eastPerfecto Mobile
 

More from Perfecto Mobile (20)

QA or the Highway 2022.pptx
QA or the Highway 2022.pptxQA or the Highway 2022.pptx
QA or the Highway 2022.pptx
 
Maturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous TestingMaturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous Testing
 
Proven strategy for testing pw as aus-agile_testers
Proven strategy for testing pw as aus-agile_testersProven strategy for testing pw as aus-agile_testers
Proven strategy for testing pw as aus-agile_testers
 
Shorten Business Life Cycle Using DevOps
Shorten Business Life Cycle Using DevOpsShorten Business Life Cycle Using DevOps
Shorten Business Life Cycle Using DevOps
 
Selenium conf india pwa 2018
Selenium conf india pwa 2018Selenium conf india pwa 2018
Selenium conf india pwa 2018
 
Online testconf event rwd and pwa 2018
Online testconf event rwd and pwa 2018Online testconf event rwd and pwa 2018
Online testconf event rwd and pwa 2018
 
Optimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps PipelineOptimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps Pipeline
 
Cross browser testing
Cross browser testingCross browser testing
Cross browser testing
 
Quest2018 erank optimize test automation
Quest2018 erank optimize test automationQuest2018 erank optimize test automation
Quest2018 erank optimize test automation
 
Mapping mobileandweblandscape motb
Mapping mobileandweblandscape motbMapping mobileandweblandscape motb
Mapping mobileandweblandscape motb
 
5 Stages of Digital Quality Maturity
5 Stages of Digital Quality Maturity5 Stages of Digital Quality Maturity
5 Stages of Digital Quality Maturity
 
Testing Next Generation Digital Interfaces
Testing Next Generation Digital InterfacesTesting Next Generation Digital Interfaces
Testing Next Generation Digital Interfaces
 
Raleigh User Forum Presentation
Raleigh User Forum PresentationRaleigh User Forum Presentation
Raleigh User Forum Presentation
 
Automation challenges - 121 Test Automation Event boston
Automation challenges - 121 Test Automation Event bostonAutomation challenges - 121 Test Automation Event boston
Automation challenges - 121 Test Automation Event boston
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017
 
7 Keys for Unattended Test AUtomation webinar deck
7 Keys for Unattended Test AUtomation webinar deck7 Keys for Unattended Test AUtomation webinar deck
7 Keys for Unattended Test AUtomation webinar deck
 
iOS9 Launch - Mobile Dev & Test Implications
iOS9 Launch - Mobile Dev & Test ImplicationsiOS9 Launch - Mobile Dev & Test Implications
iOS9 Launch - Mobile Dev & Test Implications
 
Continuous Quality For a 5 Star Mobile Apps Delivery
Continuous Quality For a 5 Star Mobile Apps DeliveryContinuous Quality For a 5 Star Mobile Apps Delivery
Continuous Quality For a 5 Star Mobile Apps Delivery
 
Mobile Test Coverage- Israel 4th meetup
Mobile Test Coverage- Israel 4th meetupMobile Test Coverage- Israel 4th meetup
Mobile Test Coverage- Israel 4th meetup
 
Mobile test automation perfecto star east
Mobile test automation perfecto star eastMobile test automation perfecto star east
Mobile test automation perfecto star east
 

Recently uploaded

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 

Recently uploaded (20)

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 

Mastering BDD - Eran Kinsbruner Workshop Quest 2018

  • 1. Mastering Behavior Driven Development Workshop & Tutorial © 2015, Perfecto Mobile Ltd. All Rights Reserved. Eran Kinsbruner @ek121268, http://continuoustesting.blog
  • 2. About Me • Lead Technical Evangelist at Perfecto • Blogger and Speaker • http://mobiletestingblog.com • https://www.infoworld.com/author/Eran- Kinsbruner/ • 18+ Years in Development & Testing • Author of The Digital Quality Handbook To get your copy of the book, come by the Perfecto Booth
  • 3. Agenda Learning Objectives: • What is BDD and its key advantages and disadvantages. • What are the material differences in test automation between Mobile, Web and Responsive apps. • How to build a BDD project that is based on a page object model that runs in parallel on various platforms. Tutorial Outline: • An Intro to BDD • What is driving a shift to such software development practice • Who are the stakeholders that make BDD process work • What are the differences between BDD and formal software development life cycle • BDD 101 • What are feature files, step definition (glue code), scenarios, background, DDT, Tagging, and a BDD project structure (Gherkin) • Working with mobile and web objects and page object model within BDD • Available tools and frameworks in the market that supports BDD (e.g. Serenity BDD, Cucumber, Protractor, and more) • BDD in the Cloud (quantum project reference) • Configure a BDD project for responsive web and mobile apps to run in parallel in the cloud • Leverage reporting to maximize quality productivity • BDD and Visual Analysis • Quantum & Applitools how to • BDD Markdown Framework – Gauge.org
  • 4. There’s a Paradigm Shift in Software Development 5/22/2018 4© 2015, Perfecto Mobile Ltd. All Rights Reserved. +
  • 5. Quality Is Everyone's ‘Problem’
  • 6. DevOps == Continuous Everything 5/22/2018 6© 2015, Perfecto Mobile Ltd. All Rights Reserved. Credit: TestingWhiz
  • 7. 1 2 3 4 Approaches to DevOps Testing Coverage DailySprint Smoke Full Coverage before Robustness Robustness Before Coverage Most of the market • Sprint level execution • Half-way to coverage 1. Create some scripts 2. Create more scripts 3. Even more scripts 4. (Try to) run them daily 1 2 3 4 1. Create few robust scripts 2. Make sure they run daily 3. Slowly add more scripts 1. Maintain stability & visibility 4. Add more scripts • Too many failures • Too much time spent on analysis
  • 8. Test Coverage Principles © 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 9. A Day in A Life – Covering Real Environments Should be Part of Your Coverage Planning 12/3/2016 System/Network Conditions • Battery not full • Location Services Active • 4G Network/No Wi-Fi • System level is important Background Notifications • Messages • News app notifications • Sport apps notifications • Emails alerts • Social (Facebook) alerts
  • 10. The Coverage Cube 5/22/2018 10© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 11. Mobile Platform Share – Quality is a Moment in Time 5/22/2018 11© 2015, Perfecto Mobile Ltd. All Rights Reserved. 3 OS Families Required to Support 3 - 4 OS Families to Support
  • 12. Some Real Life Example 5/22/2018 12© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 13. Worldwide Distribution 5/22/2018 13© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 14. Assuring UX Has Never Been More Important
  • 15. Mobile & Web- Test Coverage Principles
  • 16. Platform Specific Coverage Recommendations 5/22/2018 16© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 17. Coverage Planning Tools 5/22/2018 17© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 18. Coverage Planning Tools 5/22/2018 18© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 19. Reality Check: The Broken Promise of Automation (Key Challenges) Plethora of Test Frameworks But Parallel testing across platform is a hard to achieve goal Flakiness of tests slows down release trains (test issues, lab issues) Automation coverage is limited due to test framework supported features Timely support for new features/platform s is an issue Execution performance /speed is inconsistent across frameworksThere is no support for non-functional testing within the key frameworks Green build isn’t a normal - The level of trust in testing by dev is low Feedback loop and reporting - hard to manage Still a lot of manual testing No guidelines around writing “Good” test code Quantity over Quality is still a valid and !right metric 5/22/2018 19© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 20. TDD & BDD – Path to Advanced Agile Testing 5/22/2018 20© 2015, Perfecto Mobile Ltd. All Rights Reserved. Source: Use DevOps And Supply Chain Principles To Automate Application Delivery Governance Christopher Condo and Diego Lo Giudice (Forrester) December 8, 2017
  • 21. BDD Definition – By Wikipedia • In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).[1][2][3][vague]Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.[1][4] • BDD is largely facilitated through the use of a simple domain-specific language (DSL) using natural language constructs (e.g., English-like sentences) that can express the behavior and the expected outcomes. Test scripts have long been a popular application of DSLs with varying degrees of sophistication. BDD is considered an effective technical practice especially when the "problem space" of the business problem to solve is complex.
  • 22. BDD method has crossed the chasm Source: InfoQ
  • 23. ATDD 5/22/2018 23© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 24. BDD, The 3 Amigos and TDD Definition • Three amigos refers to the primary perspectives to examine an increment of work before, during, and after development. Those perspectives are: • Business - What problem are we trying to solve? • Development - How might we build a solution to solve that problem? • Testing - What about this, what could possibly happen?
  • 25. Differences Between TDD, ATDD, and BDD • TDD is rather a paradigm than a process. It describes the cycle of writing a test first, and application code afterwards – followed by an optional refactoring. • TDD doesn’t make any statements about: Where do I begin to develop? What exactly should I test? How should tests be structured and named? • BDD always start with the piece of functionality that’s most important to your user. • TDD and BDD have language differences, BDD tests are written in an English-like language. • BDD is customer-focused while ATDD leans towards the developer-focused side of things like [Unit]TDD does. This allows much easier collaboration with non-techie stakeholders, than TDD. • BDD gives a clearer understanding as to what the system should do from the perspective of the developer and the customer. • BDD focuses on the behavioral aspect of the system unlike TDD that focuses on the implementation aspect of the system. • ATDD focuses on capturing requirements in acceptance tests and uses them to drive the development. (Does the system do what it is required to do?) • TDD tools and techniques are usually much more techie in nature, requiring that you become familiar with the detailed object model (or in fact create the object model in the process, if doing true test-first canonical TDD). • TDD allows a good and robust design, still, your tests can be very far away of the users requirements. BDD is a way to ensure consistency between requirements and the developer tests. • TDD allows a good and robust design, still, your tests can be very far away of the users requirements. BDD is a way to ensure consistency between requirements and the developer tests. 5/22/2018 25© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 26. BDD Traditional Workflow (John Ferguson Smart) 5/22/2018 26© 2015, Perfecto Mobile Ltd. All Rights Reserved. Source: John Ferguson Smart Post
  • 27. Advantages & Disadvantages of Using BDD Expected Benefits • Builds a shared understanding about the intent of an increment of work. • Easy ramp up from a skillset perspective • Multi language & IDE support (Java, Ruby) • Various mobile and web supporting frameworks • Identifies misunderstandings and confusion early and allows learning to happen sooner in the delivery of an increment of work. • Provides a reasonable guard rail for the number of people who should be involved in discussions about any given increment of work.
  • 28. Advantages & Disadvantages of Using BDD Disadvantages & Common Pitfalls • While syncing various personas, Doesn’t employ traditional SW development processes • Dependent on available coding skillset within the team (step definition development) • Maintenance and cross platform robust test coding is often a challenge • Limiting three amigo discussions to only three people. If there are other stakeholders who are relevant to a particular increment of work, include them in the discussion. • Three amigo discussions become regularly scheduled meetings and are treated as another ceremony for the team to do instead of as a handy guide of what perspectives should be included in a discussion about a particular increment of work.
  • 29. Here is a sample Gherkin document: Feature: Refund item Scenario: Jeff returns a faulty microwave Given Jeff has bought a microwave for $100 And he has a receipt When he returns the microwave Then Jeff should be refunded $100 In Gherkin, each line that isn't blank has to start with a Gherkin keyword, followed by any text you like. The main keywords are: • Feature • Scenario • Given, When, Then, And, But (Steps) • Background • Scenario Outline • Examples There are a few extra keywords as well: • """ (Doc Strings) • | (Data Tables) • @ (Tags) • # (Comments) Gherkin Syntax https://cucumber.io/docs/reference
  • 30. Gherkin Syntax – Features, Scenario’s & Steps • Features describe in an high level a single feature of the system e.g. “Login to the app” and to group to it set of related scenario’s • Scenario’s are specific business rules related to the feature • Describe an initial context • Describe an event • Describe an expected outcome • Steps are usually defined using Given, When and Then and construct the body of the scenario. • There are some recommended practices around the # of Given and When within a single scenario. To many == split your scenario • Then usually would describe the expected outcome followed by an Assertion or validation (Object based or Visual based).
  • 31. Diving Into Gherkin – Use of Background’s Instead of repeating Given steps across multiple scenario’s, Include the repetitive Given/s in the Background section
  • 32. Diving Into Gherkin – Use of Runners (Junit/TestNG)
  • 33. Diving Into Gherkin – Scenario’s vs. Scenario Outline A container for a table
  • 34. Doc Strings and Data Tables Doc strings (“””) are used to pass large string of text to a step definition Data tables are used to pass a list of values to a step definition
  • 35. Tagging and RTDD Use of tags (@) above Features, Scenarios allow classifying and grouping what’s above the tag. E.g. – a tag placed above a Feature means that all scenarios below that feature get the tag.
  • 36. Cucumber Support Multiple Languages (Step Definition)
  • 37. POM - Benefits One Place Change Model Pages in Code Reduce Code Duplication Simulate User Actions Snippets of Page
  • 38. POM - Example Scenario: Sign in and sign out When I open automationpractice website And I sign in Then I sign out
  • 40. Cucumber.IO 5/22/2018 40© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 41. BDD Test Management Teams can chose commercial tools (TestRail e.g.) or embed BDD into their Build/CI tool chain • Build Tools • Gradle, Maven • CI Tools • Jenkins, Team City, Bamboo
  • 42. BDD for iOS – XCFit & Cucumberish XCFit is a pure Swift implementation to support BDD inside XCode projects. It also gives XCode templates to get started with BDD, Page Object Pattern and Protocol Oriented pattern. XCFit has some pre-defined steps inside Swift frameworks but the quick benefit comes from XCode templates. More information on Protocol Oriented BDD here. Again major drawback is we cannot write or execute .feature files and lacks many core cucumber features like tags, filtering features. Cucumberish is a test framework that can be used to write features in Gherkin format and can be executed from XCode. Cucumberish is written Objective-C and uses Objective-C Gherkin parser from Cucumber repository. Its great to be able to execute Gherkin feature files from XCode but Cucumberish has some bugs and needs workarounds for most cases. Also it’s a bit tricky to introduce Objective-C dependency in the fully Swift Project. Cucumberish can be imported to UI Test target using CocoaPods or Carthage.
  • 43. BDD for iOS – XCFit & Cucumberish
  • 44. BDD for iOS – XCFit & Cucumberish The XCFit predefined Steps are grouped by • Application Launcher Steps • User Actions • Waiter Actions • Assertions Follow to learn more: https://github.com/Shashikant86
  • 46. Architecture Perfecto Report Object Spy Repository file Live dashboard Cucumber BDD test Test Java code testNG Perfecto utils Pre define steps User advance code Script creation Execute Report Access to devices Remote debugging Real devices and browsers Manual services
  • 47. BDD – Cucumber Test -Feature files Pre define steps by Perfecto Logical steps created by customers
  • 48. BDD – Steps definition Test -Feature files Pre define steps by Perfecto Logical steps created by customers
  • 49. BDD – Object Repository objectID = locatorID = locator
  • 50. BDD – components Test -Feature files Pre define steps by Perfecto (Low Level) Logical steps created by customers • Standard BDD – cucumber • Auto complete using standard Cucumber plugin Requirements from user: • Identify elements and add to repository • Build flow by using low level and logical functions
  • 51. code– components Test -Feature files Pre define steps by Perfecto Logical steps created by customers • Customer code • Standard java code • Focused only on the test actions and validations • QAF manage • Driver init • getDriver() – provide the exiting driver • Object repository • Predefine functions (sendKey, assertText,…) • Integration with DigitalZoom™ execution and steps (no code need to be added) • Perfecto • Utils code with specific commands like (WT, swipe)
  • 52. Project structure BDD Logical commands Java tests for java coder testers Perfecto extensions TestNG execution Data repository Cloud / app configuration file
  • 53. Project config file – driver Appium Selenium
  • 54. Execution – Threads and devices Each test = new thread with the requested device Thread 1 iOS Thread 2 Android
  • 55. Quantum Area Components Quantum Management Reporting Execution Manager Test Development Test Authoring (IDE+Language) Object Repository Object Locator/Spy Appium/Selenium ✓OSS = ✓OSS ✓OSS http://projectQuantum.io
  • 56. Sample Project Demo (RWD) Sample Visual Testing Demo © 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 57. BDD Tools Landscape http://fitnesse.org/FrontPage https://cucumber.io/ http://jbehave.org/ http://www.thucydides.info/#/ http://specflow.org/ https://mochajs.org/ https://gauge.org/
  • 58. Gauge Intro • Installation • Install Chocolatey (CMD.exe, Admin mode) • “@"%SystemRoot%System32WindowsPowerShellv1.0powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin” • From windows CMD.exe run • “choco install gauge” • Choose the language of choice (Java, C#, Ruby) • "gauge init java” or “gauge init java_maven_selenium” • Write your Specs & Run them • Markdown Syntax that includes: Specifications, Scenarios, Steps and Tags • “gauge run specs” 5/22/2018 58© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 59. Gauge Intro – Continue 5/22/2018 59© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 60. Gauge Intro – Continue 5/22/2018 60© 2015, Perfecto Mobile Ltd. All Rights Reserved. gauge run specs/Example.spec:[scenario in line XX]
  • 61. Gauge Intro – Continue 5/22/2018 61© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 62. Gauge Intro – Connect to The Cloud • Configure in IntelliJ Env. Variables • PERFECTO_CLOUD • PERFECTO_USERNAME • PERFECTO_SECURITY_TOKEN • Properly define the target platform under test in the DriverFactory.java • Implement your SPEC test and its required methods (Selenium) • Execute! 5/22/2018 62© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 63. JS Acceptance Testing with Codecept.JS 5/22/2018 63© 2015, Perfecto Mobile Ltd. All Rights Reserved. Source: Codecept.JS Git
  • 64. Mocha.JS Intro 5/22/2018 64© 2015, Perfecto Mobile Ltd. All Rights Reserved.
  • 65. Jbehave Intro & Composite Steps 5/22/2018 65© 2015, Perfecto Mobile Ltd. All Rights Reserved. Combine 2 step definitions with parameters Using @Composite annotation
  • 66. Suggested BDD Tools Selection Criteria
  • 67. Tool Selection Case Study (Model) (USAA) • Define needed capabilities 5/22/2018 67© 2015, Perfecto Mobile Ltd. All Rights Reserved. Selection Criteria End to End Testing BDD/ATDD Friendly Tool Documentation Visual Navigation Testing
  • 68. USAA Tool Selection • Define needed capabilities • Identify importance (weight capabilities) 5/22/2018 68© 2015, Perfecto Mobile Ltd. All Rights Reserved. Weight Key 1 – Low importance 3 – Medium importance 5 – High importance Weight Selection Criteria 5 (High importance) End to End Testing 3 (Medium importance) BDD/ATDD Friendly 5 (High importance) Tool Documentation 1 (Low importance) Visual Navigation Testing
  • 69. USAA Tool Selection • Define needed capabilities • Identify importance (weight capabilities) • Define scoring key 5/22/2018 69© 2015, Perfecto Mobile Ltd. All Rights Reserved. Scoring Key 0 – Did not meet expectations 2 – Met expectations 3 – Exceeded expectations Weight Selection Criteria Tool X Tool Y Tool Z 5 (High importance) End to End Testing 3 3 3 3 (Medium importance) BDD/ATDD Friendly 3 2 3 5 (High importance) Tool Documentation 0 2 2 1 (Low importance) Visual Navigation Testing 3 3 2
  • 70. USAA Tool Selection • Define needed capabilities • Identify importance (weight capabilities) • Define scoring key 5/22/2018 70© 2015, Perfecto Mobile Ltd. All Rights Reserved. Weight Selection Criteria Tool X (weighted) Tool Y (weighted) Tool Z (weighted) 5 (High importance) End to End Testing 3 5 x 3 = 15 3 5 x 3 = 15 3 5 x 3 = 15 3 (Medium importance) BDD/ATDD Friendly 3 3 x 3 = 9 2 3 x 2 = 6 3 3 x 3 = 9 5 (High importance) Tool Documentation 0 5 x 0 = 0 2 5 x 2 = 10 2 5 x 2 = 10 1 (Low importance) Visual Navigation Testing 3 1 x 3 = 3 3 1 x3 = 3 2 1 x 2 = 2 Total 27 34 36 Scoring Key 0 – Did not meet expectations 2 – Met expectations 3 – Exceeded expectations
  • 71. Open Discussion • Challenges with BDD • R&D dependency? • Reports? • Integrations to tool suites? • Requirements and backlog alignment? • Cross-team efficiency and sync? • Is BDD a transitional phase in your organization or end-goal? • Metrics used for BDD success? • What is the future of BDD? • Other? 5/22/2018 71© 2015, Perfecto Mobile Ltd. All Rights Reserved.