SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
Contract Testing the Mobile
Boundary
Stephen Vance and Dylan Spencer
Zipcar
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 1
Our System
Service Client
(Consumer)
Service
Implementation
(Provider)
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 2
The Problem
Service Client
(Consumer)
Client
Test
Mock
Service
Implementation
(Provider)
Servic
e
Test
?
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 3
Contract Tests
Service Client
(Consumer)
Client
Test
Service
Implementation
(Provider)
Contract Tests
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 4
Enter Pact
• Consumer driven contract
testing
• https://github.com/reales
tate-com-au/pact
• Implementations
– Ruby
– JVM
– .Net
– JavaScript
– Swift
– Python
From https://github.com/realestate-com-au/pact
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 5
Pact Broker
Service Client
(Consumer)
Client
Test
Contract Tests
Service
Implementation
(Provider)
Pact
Broker
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 6
Hungry for More?
• Martin Fowler on Contract Testing
– http://martinfowler.com/articles/consumerDriven
Contracts.html
• Pact
– https://github.com/realestate-com-au/pact
• Pact Broker
– https://github.com/bethesque/pact_broker
• Twitter: @pact_up
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 7
Complementary Methods
• VCR
– https://github.com/vcr/vcr
– Records server interactions for verification against
clients
• Webmock
– https://github.com/bblimke/webmock
– In-process stubbing for Ruby only
• Pacto
– https://github.com/thoughtworks/pacto
– Static contracts for Ruby only
• And More!
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 8
Contact Me
Stephen Vance
www.vance.com
steve@vance.com
svance@zipcar.com
@StephenRVance
https://www.linkedin.com
/in/srvance
Copyright Stephen Vance, 2016 Contract Testing the Mobile Boundary 9

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (11)

Brochure - SG World USA
Brochure - SG World USABrochure - SG World USA
Brochure - SG World USA
 
healthyeating
healthyeatinghealthyeating
healthyeating
 
Bt duc
Bt ducBt duc
Bt duc
 
A cautionary tale of agile project management
A cautionary tale of agile project managementA cautionary tale of agile project management
A cautionary tale of agile project management
 
ACE-Cloud White Paper
ACE-Cloud White PaperACE-Cloud White Paper
ACE-Cloud White Paper
 
Direct sales executive perfomance appraisal 2
Direct sales executive perfomance appraisal 2Direct sales executive perfomance appraisal 2
Direct sales executive perfomance appraisal 2
 
Portafolio interiores
Portafolio interioresPortafolio interiores
Portafolio interiores
 
Genetically Modified Organisms
Genetically Modified OrganismsGenetically Modified Organisms
Genetically Modified Organisms
 
heroes
heroesheroes
heroes
 
Витебщина освобожденная
Витебщина освобожденнаяВитебщина освобожденная
Витебщина освобожденная
 
kapasitor
kapasitorkapasitor
kapasitor
 

Mehr von Stephen Vance

Ai and mobile - Power in Your Pocket
Ai and mobile - Power in Your PocketAi and mobile - Power in Your Pocket
Ai and mobile - Power in Your PocketStephen Vance
 
Zero Bugs: State of the Practice
Zero Bugs: State of the PracticeZero Bugs: State of the Practice
Zero Bugs: State of the PracticeStephen Vance
 
AST Rewriting Using recast and esprima
AST Rewriting Using recast and esprimaAST Rewriting Using recast and esprima
AST Rewriting Using recast and esprimaStephen Vance
 
Cultivating People as the Org Grows
Cultivating People as the Org GrowsCultivating People as the Org Grows
Cultivating People as the Org GrowsStephen Vance
 
AgileChina 2015: Agile Estimation Workshop
AgileChina 2015: Agile Estimation WorkshopAgileChina 2015: Agile Estimation Workshop
AgileChina 2015: Agile Estimation WorkshopStephen Vance
 

Mehr von Stephen Vance (7)

Ai and mobile - Power in Your Pocket
Ai and mobile - Power in Your PocketAi and mobile - Power in Your Pocket
Ai and mobile - Power in Your Pocket
 
Ai and mobile
Ai and mobileAi and mobile
Ai and mobile
 
Zero Bugs: State of the Practice
Zero Bugs: State of the PracticeZero Bugs: State of the Practice
Zero Bugs: State of the Practice
 
AST Rewriting Using recast and esprima
AST Rewriting Using recast and esprimaAST Rewriting Using recast and esprima
AST Rewriting Using recast and esprima
 
Ember and OAuth2
Ember and OAuth2Ember and OAuth2
Ember and OAuth2
 
Cultivating People as the Org Grows
Cultivating People as the Org GrowsCultivating People as the Org Grows
Cultivating People as the Org Grows
 
AgileChina 2015: Agile Estimation Workshop
AgileChina 2015: Agile Estimation WorkshopAgileChina 2015: Agile Estimation Workshop
AgileChina 2015: Agile Estimation Workshop
 

Kürzlich hochgeladen

Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIIvo Andreev
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorShane Coughlan
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyRaymond Okyere-Forson
 
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageSales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageDista
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.Sharon Liu
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...OnePlan Solutions
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesShyamsundar Das
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 

Kürzlich hochgeladen (20)

Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AI
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS Calculator
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human Beauty
 
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales CoverageSales Territory Management: A Definitive Guide to Expand Sales Coverage
Sales Territory Management: A Definitive Guide to Expand Sales Coverage
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
Transforming PMO Success with AI - Discover OnePlan Strategic Portfolio Work ...
 
Salesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptxSalesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptx
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security Challenges
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 

Contract Testing the Mobile Boundary