SlideShare a Scribd company logo
CUCUMBERSPEC A TOOL TAKES
YOUR BDD TO THE NEXT LEVEL
30-5-2015
PROJECT TEAM
2
• Adrian Yankov
– Graduation Intern
• Kyra Hameleers
– Test Engineer @ Nspyre
• Rachid Kherrazi
– MBT competence Leader @ Nspyre
– Project Leader of this project
GOALS
• Sharing knowledge on 3 topics
– Behaviour-Driven Testing
– Model-Based Testing
– Combined strengths
• Encourage the usage of Model-Based Testing
CONTENT
• Introduction
– Behaviour-Driven Testing(BDT)
• What is it and why?
– Model-Based Testing(MBT)
• What is it and why?
– Using Gherkin in MBT
• CucumberSpec Tool
• Testing a drone with this approach
4
BEHAVIOUR-DRIVEN TESTING
• An example
5
BDT LANGUAGE AND BENEFITS
Why?
• Main benefit – the team gets together and writes down a
common, shared knowledge in a well-known format.
• Generates test cases from a high-level formal human
language.
Tools
• There are several tools such as SpecFlow, Behave and
Cucumber etc.
6
EXAMPLE: SPECFLOW
7
SOME NICE FEATURES
8
• Data Parameterization
– Supports placeholders.
– Contained within < >
Example:
BDT WITH SPECFLOW
9
GUI
Application/
database layer
Testinterface
Physical test
cases
Logical test
cases (Gherk
in)
Requirements
Features
Use cases
Test Engineer
Architect/
designer
SUT
create
MODEL-BASED TESTING
Manual Automatic
Testcase specification
(design van logische test cases)
Testcase execution
(includes reports)
Testcase generation
Modelbasedtesting
Traditionalmanualtesting
Traditionalautomatictesting
Manual C# Scripting
Testing skills + Scripting skills + Modeling skills
Modeling
Lightweight
Modeling languages
Generate
Scripting
10
LOOK AND FEELING
(SPEC EXPLORER)
11
MBT WITH SPEC EXPLORER
12
GUI
Application/
database layer
Testinterface
Automatic
generation
of test
scripts
Test Model
Model includes
expected
behavior
Requirements
Features
Use cases
Gherkin
Test Engineer
Architect/
designer
SUT
create
create
BDT IN COMBINATION WITH MBT
Our tool CucumberSpec generates a SpecExplorer test
model from the separate scenarios.
13
CucumberSpecIsolated scenarios
USING GHERKIN IN MBT
Benefits
Visualization of interaction space, generate more and better (exhaustive) testcases
by using different smart exploration strategies to suit the tester’s needs.
14
GUI
Application/
database layer
Testinterface
Automatic
generation
of test
scripts
Test Model
Model includes
expected
behavior
Requirements
Features
Use cases
Gherkin
Test Engineer
Architect/
designer
SUT
CucumberSpec check
create
CUCUMBERSPEC SUMMARY
Idea of our CucumberSpec
• Generates a Test model from a feature file, Connecting the separate scenarios
in a model
• Intention is to support most features (parameterization, tags….)supported by
BDD tools like Behave and SpecFLow
• + A lot of “Model Based” Benefits,
• Generate more tests cases based on different coverage used in MBT
– Testing interaction between the scenarios
– More data permutations and combinations
– This allows exhaustive testing
• No refinement is needed.
• Fully automatic process.
16
AR.DRONE
17
Security
Guard
AR.DRONE
18
Mobile AR.Drone
SW Hardware
Router Camera 1 Motors
Camera 2
Hoogte
Sensor
GPS
Application
UI
Controller
Communication
Business Layer
Data Acces Layer
Commun
ication
Layer
REQUIREMENTS
• Functional requirements:
1. Takeoff and Land via Android commands
2. Fly around via Android commands
3. Always be able to use the emergency command
• Non-Functional requirements:
1. Usability
2. Reliability
3. Security
19
To keep it simple in this PoC, we
focused only on a limited
number of functional
requirements.
TEST SCOPE
• Functional requirements
1. Takeoff and Land via Android commands
1. Takeoff
2. Land
2. Fly around via Android commands
1. Left/Right
2. Up/Down
3. Forward/Backward
4. Turn Lef/right
3. Always be able to use the emergency command
20
TESTING THE DRONE
21
Actions:
1. Take off
2. Emergency
3. Land
4. R: Right
5. L: Left
6. F: Forward
7. B: Backward
8. l: Turn left
9. r: Turn right
10. u: Up
11. d: Down
TEST MODEL
States:
1. Take off
2. Flying
3. Landing
4. Landed
5. Emergency
22
Actions:
1. Take off
2. Emergency
3. Land
4. R: Right
5. L: Left
6. F: Forward
7. B: Backward
8. l: Turn left
9. r: Turn right
10. u: Up
11. d: Down
Take off Flying Landing Landed Emergency
Take off x Reached 30 cm land X Emergency
Flying x
Right/ Left/ Up/ Down/
Forward/ Backward/ Turn
left/ Turn right land x Emergency
Landing take off, height<0 take off, height>0 X Reached 0 cm Emergency
Landed take off X X x Emergency
Emergency x Emergency, height>0 X Emergency, height<0 x
Some issues with traditional test design:
Traditional state transition test technique does not scale
high coverage (>1-switch) is complex, costly and difficult to
maintain
CREATE GHERKIN
(SMALL EXAMPLE FOR EXPLANATION PURPOSES)
23
0-switch state transition test
cases in a high-level formal
human language(Gherkin).
Landed Flying
Landed x Take off
Flying Land
Forward/
Backward
GHERKIN SCENARIOS
(SMALL EXAMPLE FOR EXPLANATION PURPOSES)
24
Isolated scenarios
GENERATED SPEC EXPLORER
(SMALL EXAMPLE FOR EXPLANATION PURPOSES)
25
Visualization of
interaction space,
This allows generation
of more and better
(exhaustive) testcases
by using different smart
exploration strategies
(supported by the MBT
tool) to suit the tester’s
needs.
COMPARISON
(SMALL EXAMPLE FOR EXPLANATION PURPOSES)
26
Isolated scenarios
model
CucumberSpec
BACK TO TEST SCOPE
27
Take off Flying Landing Landed Emergency
Take off x Reached 30 cm land X Emergency
Flying x
Right/ Left/ Up/ Down/
Forward/ Backward/ Turn
left/ Turn right land x Emergency
Landing take off, height<0 take off, height>0 X Reached 0 cm Emergency
Landed take off X X x Emergency
Emergency x Emergency, height>0 X Emergency, height<0 x
CREATED GHERKIN FILE
28
GENERATED MODEL
29
TEST CASES
30
TEST EXECUTION
• Test code can be generated
• The Tool can generate test
scripts for different execution
tools e.g NUnit/JUnit.
• No code to test it too
31
CONCLUSION
33
Metrices Cucumber MBT CucumberSpec
Approach
using gherkin files and action
definition to generate and
execute test suite
using models to
generate and execute
test suite
using gherkin files to generate
models, and generate and
execute test suite
Technique Behavior Driven Testing Model Based Testing
Combining strength of BDD and
MBT
Modeling Create gherkin files Create test model Generate test model
Effort High Medium/High Medium
Coverage 0-switch Transition coverage Transition coverage
Number of testcases 20 7 7
NEXT STEP
• Next step: Explore automatic test execution via
Xamarin/Calabash (benefit cross-platform testing)
• We are looking for a pilot project based on real
industry case from industry
• If you are interested please contact us
• or send a mail to Rachid.Kherrazi@Nspyre.nl
34
SUMMARY
• Combining the best of 2 world
– Behavior-Driven Testing
– Model-Based Testing
35
CucumberSpecIsolated scenarios
36
Ad

More Related Content

What's hot (20)

verification and validation
verification and validationverification and validation
verification and validation
Dinesh Pasi
 
Test Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew EakinTest Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew Eakin
QA or the Highway
 
Network scanner
Network  scannerNetwork  scanner
Network scanner
Shrikrishna Parab
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
Sun Technlogies
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
Adsmurai
 
Agile testing
Agile testingAgile testing
Agile testing
Yogita patil
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
Chankey Pathak
 
Strategies For Software Test Documentation
Strategies For Software Test Documentation Strategies For Software Test Documentation
Strategies For Software Test Documentation
Vishwak Solution
 
How to take organizations to higher testing maturity suresh bose anagha mahaj...
How to take organizations to higher testing maturity suresh bose anagha mahaj...How to take organizations to higher testing maturity suresh bose anagha mahaj...
How to take organizations to higher testing maturity suresh bose anagha mahaj...
Anagha Mahajan
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
Naveen Kumar Singh
 
Software Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, PuneSoftware Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, Pune
sanjayjadhav8789
 
Unit testing JavaScript: Jasmine & karma intro
Unit testing JavaScript: Jasmine & karma introUnit testing JavaScript: Jasmine & karma intro
Unit testing JavaScript: Jasmine & karma intro
Maurice De Beijer [MVP]
 
ISTQB - Software development life cycle
ISTQB - Software development life cycleISTQB - Software development life cycle
ISTQB - Software development life cycle
HoangThiHien1
 
Chapter 4 - Test Design Techniques
Chapter 4 - Test Design TechniquesChapter 4 - Test Design Techniques
Chapter 4 - Test Design Techniques
Neeraj Kumar Singh
 
Jasmine framework
Jasmine frameworkJasmine framework
Jasmine framework
Vishwanath KC
 
Automation testing
Automation testingAutomation testing
Automation testing
Biswajit Pratihari
 
Fiddler to Neoload
Fiddler to NeoloadFiddler to Neoload
Fiddler to Neoload
pratik mohite
 
Chapter 5 - Test Management
Chapter 5 - Test ManagementChapter 5 - Test Management
Chapter 5 - Test Management
Neeraj Kumar Singh
 
Manual testing ppt
Manual testing pptManual testing ppt
Manual testing ppt
Santosh Maranabasari
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
Pravin Dsilva
 
verification and validation
verification and validationverification and validation
verification and validation
Dinesh Pasi
 
Test Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew EakinTest Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew Eakin
QA or the Highway
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
Adsmurai
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
Chankey Pathak
 
Strategies For Software Test Documentation
Strategies For Software Test Documentation Strategies For Software Test Documentation
Strategies For Software Test Documentation
Vishwak Solution
 
How to take organizations to higher testing maturity suresh bose anagha mahaj...
How to take organizations to higher testing maturity suresh bose anagha mahaj...How to take organizations to higher testing maturity suresh bose anagha mahaj...
How to take organizations to higher testing maturity suresh bose anagha mahaj...
Anagha Mahajan
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
Naveen Kumar Singh
 
Software Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, PuneSoftware Testing Tutorials - MindScripts Technologies, Pune
Software Testing Tutorials - MindScripts Technologies, Pune
sanjayjadhav8789
 
Unit testing JavaScript: Jasmine & karma intro
Unit testing JavaScript: Jasmine & karma introUnit testing JavaScript: Jasmine & karma intro
Unit testing JavaScript: Jasmine & karma intro
Maurice De Beijer [MVP]
 
ISTQB - Software development life cycle
ISTQB - Software development life cycleISTQB - Software development life cycle
ISTQB - Software development life cycle
HoangThiHien1
 
Chapter 4 - Test Design Techniques
Chapter 4 - Test Design TechniquesChapter 4 - Test Design Techniques
Chapter 4 - Test Design Techniques
Neeraj Kumar Singh
 

Similar to Cucumber spec - a tool takes your bdd to the next level (20)

Webinar: How to Size a Lab
Webinar: How to Size a LabWebinar: How to Size a Lab
Webinar: How to Size a Lab
Lizzy Guido (she/her)
 
ICST/SBFT Tool Competition 2025 UAV Testing Track
ICST/SBFT Tool Competition 2025 UAV Testing TrackICST/SBFT Tool Competition 2025 UAV Testing Track
ICST/SBFT Tool Competition 2025 UAV Testing Track
Sebastiano Panichella
 
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testing
abhinavm
 
Test Strategy For Future Cloud Architecture
Test Strategy For Future Cloud ArchitectureTest Strategy For Future Cloud Architecture
Test Strategy For Future Cloud Architecture
MaheshShri1
 
Design and development of automated tests for the IoT
Design and development of automated tests for the IoTDesign and development of automated tests for the IoT
Design and development of automated tests for the IoT
Axel Rennoch
 
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalTLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
Anna Royzman
 
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Lionel Briand
 
Model-Based Design & Analysis.ppt
Model-Based Design & Analysis.pptModel-Based Design & Analysis.ppt
Model-Based Design & Analysis.ppt
RajuRaju183149
 
Tool Development 09 - Localization & Testing
Tool Development 09 - Localization & TestingTool Development 09 - Localization & Testing
Tool Development 09 - Localization & Testing
Nick Pruehs
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
Apple Chow
 
Resilience testing! Why should you
Resilience testing! Why should youResilience testing! Why should you
Resilience testing! Why should you
Geoffrey van der Tas
 
Testing 2: Advanced Test Management
Testing 2: Advanced Test Management Testing 2: Advanced Test Management
Testing 2: Advanced Test Management
Inflectra
 
System verilog Coverage including types.pdf
System verilog Coverage including types.pdfSystem verilog Coverage including types.pdf
System verilog Coverage including types.pdf
yifohab193
 
EuroSTAR presentation: What's in the cloud for testing, the sky is the limit
EuroSTAR presentation:  What's in the cloud for testing, the sky is the limitEuroSTAR presentation:  What's in the cloud for testing, the sky is the limit
EuroSTAR presentation: What's in the cloud for testing, the sky is the limit
Edwin Loon, van
 
Intro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ LabIntro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ Lab
Lizzy Guido (she/her)
 
Using hand gestures to fly UAVs
Using hand gestures to fly UAVsUsing hand gestures to fly UAVs
Using hand gestures to fly UAVs
David Qorashi
 
TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6
Sravanthi N
 
Lecture 06 - 07 - 08 - Test Techniques - Whitebox Testing.pdf
Lecture 06 - 07 - 08  -  Test Techniques - Whitebox Testing.pdfLecture 06 - 07 - 08  -  Test Techniques - Whitebox Testing.pdf
Lecture 06 - 07 - 08 - Test Techniques - Whitebox Testing.pdf
mkhawar5
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
CIVEL Benoit
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
CIVEL Benoit
 
ICST/SBFT Tool Competition 2025 UAV Testing Track
ICST/SBFT Tool Competition 2025 UAV Testing TrackICST/SBFT Tool Competition 2025 UAV Testing Track
ICST/SBFT Tool Competition 2025 UAV Testing Track
Sebastiano Panichella
 
Cloud-based performance testing
Cloud-based performance testingCloud-based performance testing
Cloud-based performance testing
abhinavm
 
Test Strategy For Future Cloud Architecture
Test Strategy For Future Cloud ArchitectureTest Strategy For Future Cloud Architecture
Test Strategy For Future Cloud Architecture
MaheshShri1
 
Design and development of automated tests for the IoT
Design and development of automated tests for the IoTDesign and development of automated tests for the IoT
Design and development of automated tests for the IoT
Axel Rennoch
 
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalTLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
Anna Royzman
 
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Lionel Briand
 
Model-Based Design & Analysis.ppt
Model-Based Design & Analysis.pptModel-Based Design & Analysis.ppt
Model-Based Design & Analysis.ppt
RajuRaju183149
 
Tool Development 09 - Localization & Testing
Tool Development 09 - Localization & TestingTool Development 09 - Localization & Testing
Tool Development 09 - Localization & Testing
Nick Pruehs
 
Uber Mobility Meetup: Mobile Testing
Uber Mobility Meetup:  Mobile TestingUber Mobility Meetup:  Mobile Testing
Uber Mobility Meetup: Mobile Testing
Apple Chow
 
Resilience testing! Why should you
Resilience testing! Why should youResilience testing! Why should you
Resilience testing! Why should you
Geoffrey van der Tas
 
Testing 2: Advanced Test Management
Testing 2: Advanced Test Management Testing 2: Advanced Test Management
Testing 2: Advanced Test Management
Inflectra
 
System verilog Coverage including types.pdf
System verilog Coverage including types.pdfSystem verilog Coverage including types.pdf
System verilog Coverage including types.pdf
yifohab193
 
EuroSTAR presentation: What's in the cloud for testing, the sky is the limit
EuroSTAR presentation:  What's in the cloud for testing, the sky is the limitEuroSTAR presentation:  What's in the cloud for testing, the sky is the limit
EuroSTAR presentation: What's in the cloud for testing, the sky is the limit
Edwin Loon, van
 
Intro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ LabIntro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ Lab
Lizzy Guido (she/her)
 
Using hand gestures to fly UAVs
Using hand gestures to fly UAVsUsing hand gestures to fly UAVs
Using hand gestures to fly UAVs
David Qorashi
 
TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6TechTalk_Cloud Performance Testing_0.6
TechTalk_Cloud Performance Testing_0.6
Sravanthi N
 
Lecture 06 - 07 - 08 - Test Techniques - Whitebox Testing.pdf
Lecture 06 - 07 - 08  -  Test Techniques - Whitebox Testing.pdfLecture 06 - 07 - 08  -  Test Techniques - Whitebox Testing.pdf
Lecture 06 - 07 - 08 - Test Techniques - Whitebox Testing.pdf
mkhawar5
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
CIVEL Benoit
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
CIVEL Benoit
 
Ad

More from nextbuild (13)

Aws microservice keynote
Aws microservice keynoteAws microservice keynote
Aws microservice keynote
nextbuild
 
How invariants help writing loops
How invariants help writing loopsHow invariants help writing loops
How invariants help writing loops
nextbuild
 
A first taste of integration with Apache Camel
A first taste of integration with Apache CamelA first taste of integration with Apache Camel
A first taste of integration with Apache Camel
nextbuild
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
nextbuild
 
Microservices in the real world
Microservices in the real worldMicroservices in the real world
Microservices in the real world
nextbuild
 
Asp.net in a new world
Asp.net in a new worldAsp.net in a new world
Asp.net in a new world
nextbuild
 
Meteor - building an email client
Meteor - building an email clientMeteor - building an email client
Meteor - building an email client
nextbuild
 
Swimming upstream in the container revolution
Swimming upstream in the container revolutionSwimming upstream in the container revolution
Swimming upstream in the container revolution
nextbuild
 
Event sourcing your AngularJS applications
Event sourcing your AngularJS applicationsEvent sourcing your AngularJS applications
Event sourcing your AngularJS applications
nextbuild
 
Make color schemes a no brainer with sass
Make color schemes a no brainer with sassMake color schemes a no brainer with sass
Make color schemes a no brainer with sass
nextbuild
 
Cqrs from the trenches
Cqrs from the trenchesCqrs from the trenches
Cqrs from the trenches
nextbuild
 
Architecting for the cloud
Architecting for the cloudArchitecting for the cloud
Architecting for the cloud
nextbuild
 
Finally… reliable software!
Finally… reliable software!Finally… reliable software!
Finally… reliable software!
nextbuild
 
Aws microservice keynote
Aws microservice keynoteAws microservice keynote
Aws microservice keynote
nextbuild
 
How invariants help writing loops
How invariants help writing loopsHow invariants help writing loops
How invariants help writing loops
nextbuild
 
A first taste of integration with Apache Camel
A first taste of integration with Apache CamelA first taste of integration with Apache Camel
A first taste of integration with Apache Camel
nextbuild
 
Effective code reviews
Effective code reviewsEffective code reviews
Effective code reviews
nextbuild
 
Microservices in the real world
Microservices in the real worldMicroservices in the real world
Microservices in the real world
nextbuild
 
Asp.net in a new world
Asp.net in a new worldAsp.net in a new world
Asp.net in a new world
nextbuild
 
Meteor - building an email client
Meteor - building an email clientMeteor - building an email client
Meteor - building an email client
nextbuild
 
Swimming upstream in the container revolution
Swimming upstream in the container revolutionSwimming upstream in the container revolution
Swimming upstream in the container revolution
nextbuild
 
Event sourcing your AngularJS applications
Event sourcing your AngularJS applicationsEvent sourcing your AngularJS applications
Event sourcing your AngularJS applications
nextbuild
 
Make color schemes a no brainer with sass
Make color schemes a no brainer with sassMake color schemes a no brainer with sass
Make color schemes a no brainer with sass
nextbuild
 
Cqrs from the trenches
Cqrs from the trenchesCqrs from the trenches
Cqrs from the trenches
nextbuild
 
Architecting for the cloud
Architecting for the cloudArchitecting for the cloud
Architecting for the cloud
nextbuild
 
Finally… reliable software!
Finally… reliable software!Finally… reliable software!
Finally… reliable software!
nextbuild
 
Ad

Recently uploaded (20)

Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 

Cucumber spec - a tool takes your bdd to the next level

  • 1. CUCUMBERSPEC A TOOL TAKES YOUR BDD TO THE NEXT LEVEL 30-5-2015
  • 2. PROJECT TEAM 2 • Adrian Yankov – Graduation Intern • Kyra Hameleers – Test Engineer @ Nspyre • Rachid Kherrazi – MBT competence Leader @ Nspyre – Project Leader of this project
  • 3. GOALS • Sharing knowledge on 3 topics – Behaviour-Driven Testing – Model-Based Testing – Combined strengths • Encourage the usage of Model-Based Testing
  • 4. CONTENT • Introduction – Behaviour-Driven Testing(BDT) • What is it and why? – Model-Based Testing(MBT) • What is it and why? – Using Gherkin in MBT • CucumberSpec Tool • Testing a drone with this approach 4
  • 6. BDT LANGUAGE AND BENEFITS Why? • Main benefit – the team gets together and writes down a common, shared knowledge in a well-known format. • Generates test cases from a high-level formal human language. Tools • There are several tools such as SpecFlow, Behave and Cucumber etc. 6
  • 8. SOME NICE FEATURES 8 • Data Parameterization – Supports placeholders. – Contained within < > Example:
  • 9. BDT WITH SPECFLOW 9 GUI Application/ database layer Testinterface Physical test cases Logical test cases (Gherk in) Requirements Features Use cases Test Engineer Architect/ designer SUT create
  • 10. MODEL-BASED TESTING Manual Automatic Testcase specification (design van logische test cases) Testcase execution (includes reports) Testcase generation Modelbasedtesting Traditionalmanualtesting Traditionalautomatictesting Manual C# Scripting Testing skills + Scripting skills + Modeling skills Modeling Lightweight Modeling languages Generate Scripting 10
  • 11. LOOK AND FEELING (SPEC EXPLORER) 11
  • 12. MBT WITH SPEC EXPLORER 12 GUI Application/ database layer Testinterface Automatic generation of test scripts Test Model Model includes expected behavior Requirements Features Use cases Gherkin Test Engineer Architect/ designer SUT create create
  • 13. BDT IN COMBINATION WITH MBT Our tool CucumberSpec generates a SpecExplorer test model from the separate scenarios. 13 CucumberSpecIsolated scenarios
  • 14. USING GHERKIN IN MBT Benefits Visualization of interaction space, generate more and better (exhaustive) testcases by using different smart exploration strategies to suit the tester’s needs. 14 GUI Application/ database layer Testinterface Automatic generation of test scripts Test Model Model includes expected behavior Requirements Features Use cases Gherkin Test Engineer Architect/ designer SUT CucumberSpec check create
  • 15. CUCUMBERSPEC SUMMARY Idea of our CucumberSpec • Generates a Test model from a feature file, Connecting the separate scenarios in a model • Intention is to support most features (parameterization, tags….)supported by BDD tools like Behave and SpecFLow • + A lot of “Model Based” Benefits, • Generate more tests cases based on different coverage used in MBT – Testing interaction between the scenarios – More data permutations and combinations – This allows exhaustive testing • No refinement is needed. • Fully automatic process. 16
  • 17. AR.DRONE 18 Mobile AR.Drone SW Hardware Router Camera 1 Motors Camera 2 Hoogte Sensor GPS Application UI Controller Communication Business Layer Data Acces Layer Commun ication Layer
  • 18. REQUIREMENTS • Functional requirements: 1. Takeoff and Land via Android commands 2. Fly around via Android commands 3. Always be able to use the emergency command • Non-Functional requirements: 1. Usability 2. Reliability 3. Security 19 To keep it simple in this PoC, we focused only on a limited number of functional requirements.
  • 19. TEST SCOPE • Functional requirements 1. Takeoff and Land via Android commands 1. Takeoff 2. Land 2. Fly around via Android commands 1. Left/Right 2. Up/Down 3. Forward/Backward 4. Turn Lef/right 3. Always be able to use the emergency command 20
  • 20. TESTING THE DRONE 21 Actions: 1. Take off 2. Emergency 3. Land 4. R: Right 5. L: Left 6. F: Forward 7. B: Backward 8. l: Turn left 9. r: Turn right 10. u: Up 11. d: Down
  • 21. TEST MODEL States: 1. Take off 2. Flying 3. Landing 4. Landed 5. Emergency 22 Actions: 1. Take off 2. Emergency 3. Land 4. R: Right 5. L: Left 6. F: Forward 7. B: Backward 8. l: Turn left 9. r: Turn right 10. u: Up 11. d: Down Take off Flying Landing Landed Emergency Take off x Reached 30 cm land X Emergency Flying x Right/ Left/ Up/ Down/ Forward/ Backward/ Turn left/ Turn right land x Emergency Landing take off, height<0 take off, height>0 X Reached 0 cm Emergency Landed take off X X x Emergency Emergency x Emergency, height>0 X Emergency, height<0 x Some issues with traditional test design: Traditional state transition test technique does not scale high coverage (>1-switch) is complex, costly and difficult to maintain
  • 22. CREATE GHERKIN (SMALL EXAMPLE FOR EXPLANATION PURPOSES) 23 0-switch state transition test cases in a high-level formal human language(Gherkin). Landed Flying Landed x Take off Flying Land Forward/ Backward
  • 23. GHERKIN SCENARIOS (SMALL EXAMPLE FOR EXPLANATION PURPOSES) 24 Isolated scenarios
  • 24. GENERATED SPEC EXPLORER (SMALL EXAMPLE FOR EXPLANATION PURPOSES) 25 Visualization of interaction space, This allows generation of more and better (exhaustive) testcases by using different smart exploration strategies (supported by the MBT tool) to suit the tester’s needs.
  • 25. COMPARISON (SMALL EXAMPLE FOR EXPLANATION PURPOSES) 26 Isolated scenarios model CucumberSpec
  • 26. BACK TO TEST SCOPE 27 Take off Flying Landing Landed Emergency Take off x Reached 30 cm land X Emergency Flying x Right/ Left/ Up/ Down/ Forward/ Backward/ Turn left/ Turn right land x Emergency Landing take off, height<0 take off, height>0 X Reached 0 cm Emergency Landed take off X X x Emergency Emergency x Emergency, height>0 X Emergency, height<0 x
  • 30. TEST EXECUTION • Test code can be generated • The Tool can generate test scripts for different execution tools e.g NUnit/JUnit. • No code to test it too 31
  • 31. CONCLUSION 33 Metrices Cucumber MBT CucumberSpec Approach using gherkin files and action definition to generate and execute test suite using models to generate and execute test suite using gherkin files to generate models, and generate and execute test suite Technique Behavior Driven Testing Model Based Testing Combining strength of BDD and MBT Modeling Create gherkin files Create test model Generate test model Effort High Medium/High Medium Coverage 0-switch Transition coverage Transition coverage Number of testcases 20 7 7
  • 32. NEXT STEP • Next step: Explore automatic test execution via Xamarin/Calabash (benefit cross-platform testing) • We are looking for a pilot project based on real industry case from industry • If you are interested please contact us • or send a mail to [email protected] 34
  • 33. SUMMARY • Combining the best of 2 world – Behavior-Driven Testing – Model-Based Testing 35 CucumberSpecIsolated scenarios
  • 34. 36