SlideShare a Scribd company logo
1 of 24
Download to read offline
 
	
  
	
  
	
  
	
  
	
  
	
  
	
  
W14	
  
Test	
  Techniques	
  
5/10/17	
  15:00	
  
	
  
	
  
	
  
	
  
	
  
Microservices	
  Testing	
  Strategies:	
  The	
  
Good,	
  the	
  Bad,	
  and	
  the	
  Reality	
  
	
  
Presented	
  by:	
  	
  
	
  
	
   Tariq	
  King	
  
	
  
Ultimate	
  Software	
  
	
  
Brought	
  to	
  you	
  by:	
  	
  
	
  	
  
	
  
	
  
	
  
	
  
350	
  Corporate	
  Way,	
  Suite	
  400,	
  Orange	
  Park,	
  FL	
  32073	
  	
  
888-­‐-­‐-­‐268-­‐-­‐-­‐8770	
  ·∙·∙	
  904-­‐-­‐-­‐278-­‐-­‐-­‐0524	
  -­‐	
  info@techwell.com	
  -­‐	
  http://www.starwest.techwell.com/	
  	
  	
  
 
	
  	
  
	
  
Tariq	
  King	
  
	
  
Tariq	
  King	
  is	
  the	
  director	
  of	
  quality	
  engineering	
  at	
  Ultimate	
  Software.	
  With	
  more	
  
than	
  fifteen	
  years	
  of	
  experience	
  in	
  software	
  testing	
  research	
  and	
  practice,	
  Tariq	
  
provides	
  technical	
  leadership,	
  people	
  leadership,	
  strategic	
  direction,	
  and	
  staff	
  
training	
  in	
  software	
  quality	
  and	
  test	
  engineering.	
  He	
  has	
  previously	
  held	
  positions	
  of	
  
test	
  manager,	
  test	
  architect,	
  test	
  lead,	
  researcher,	
  and	
  college	
  professor.	
  Tariq	
  is	
  a	
  
frequent	
  presenter	
  at	
  conferences	
  and	
  workshops,	
  has	
  published	
  more	
  than	
  thirty	
  
research	
  articles	
  in	
  IEEE	
  and	
  ACM	
  sponsored	
  journals,	
  and	
  has	
  developed	
  and	
  
taught	
  software	
  testing	
  courses	
  in	
  both	
  industry	
  and	
  academia.	
  Contact	
  him	
  via	
  
LinkedIn.	
  
	
  
MICROSERVICES TESTINGA hero will emerge on 5.10.2017 at the Rosen Center Hotel, Orlando FL.
BADTHE
THE
GOOD
REALITY
AND THE
Tariq King
and
ARCHITECT
DEVELOPER
ANALYST
TESTER
AGENDA
o INTRODUCTION TO MICROSERVICES
o MICROSERVICES TESTING “REALITY CHECK”
o TESTING STRATEGIES
o UNIT TESTING
o CONTRACT TESTING
o READINESS TESTING
o INTEGRATION TESTING
o SYSTEM TESTING
Show Up
Talk
Leave
MICROSERVICES
MICROSERVICES
Functional decomposition of system into small, independently deployable services.
Functional decomposition means vertical slicing
as opposed to horizontal slicing into layers.
Functional decomposition of system into small, independently deployable services.
PRESENTATION
APPLICATION LOGIC
DATA ACCESS
MICROSERVICES
Functional decomposition of system into small, independently deployable services.
‘Micro’ refers to small size but there is no
universal definition of small.
As small as possible but as big as
necessary to represent domain.
Manageable by a team of
five to six persons.
MICROSERVICES
Functional decomposition of system into small, independently deployable services.
PASSENGER
MANAGEMENT
BILLING NOTIFICATIONS PAYMENTS
TRIP
MANAGEMENT
DRIVER
MANAGEMENT
MICROSERVICES
Functional decomposition of system into small, independently deployable services.
Independently deployable also implies that each
microservice is independently scalable.
MICROSERVICES
Functional decomposition of system into small, independently deployable services.
Scale by Using Microservices
Y-Axis (functional decomposition)
Scale by Cloning Services
X-Axis (horizontal duplication)
Scale by Sharding Databases
Z-Axis (data partitioning)
MAXIMUM
SCALABILITY
MONOLITHIC
SYSTEM
MICROSERVICES
Functional decomposition of system into small, independently deployable services.
MICROSERVICES
Single
Responsibility
Encapsulation
(Private)
Monitored
(Observable)
Clustered
(Instanced)
Technology
Agnostic
MICROSERVICES TESTING
Makes the dependency relationships
between components more explicit.
Single responsibility allows for more
focused testing and debugging.
Monitoring improves observability.
Clustering supports test set up/debugging.
Isolation and independence facilitate
quicker test set up and faster cycles.
Opportunity to reuse existing knowledge
and create new knowledge and tools.
THE GOOD THE BAD
Natural fear associated with new paradigm.
Additional complexity complicates testing.
(network, messaging, varied technologies)
Inter-service calls over network have higher
cost than in-process calls in monolith.
May lead to an explosion in the number of
tools and technologies being maintained.
If microservice is too fine-grained, overhead
can outweigh its utility (nanoservice).
Over-mocking can lead to unrealistic tests.
Isolation
Containment
Explicit Relationships
Knowledge
Extremism
Natural Fear
Overhead
Unanswered Questions
Opportunities
WHAT? WHERE? WHEN?
COMPLEXITY, PERFORMANCE
NANOSERVICE ANTI-PATTERN,
OVER-MOCKING
CHANGE
INTEGRATION, PROCESS
MORE SEAMS
NEW APPROACHES, TOOLS
TEST FOCUS, DEBUGGING REUSE CREATE
THE REALITY
KNOWLEDGE REUSE
TECHNIQUES
METHODS
PRINCIPLES
TOOLS
COMPLEXITY, PERFORMANCE
UNIT TESTING
SERVICE
CONTRACT
SERVICE
READINESS
SERVICE
INTEGRATION
SYSTEM
TESTING PYRAMID
UNIT TESTING
1. Know what you are testing.
2. Test results not implementation.
3. Test one thing at a time.
4. Make tests readable and
understandable.
5. Make tests independent
and self-sufficient.
6. Make tests deterministic.
7. Repeat yourself when necessary.
8. Measure code coverage but
focus on test coverage.
GUIDELINES
UNIT TESTINGTUTORIALS
UNIT TESTING:
WHAT EVERY TESTER SHOULD KNOW
BEYOND UNIT TESTING:
MORE OF WHAT TESTERS SHOULD KNOW
CONTRACT
MUTUAL AGREEMENT
DEFENSIVE
NO TRUST
Benefit for consumer is an obligation for the
provider, and vice-versa.
Full contract (obligation) for provider is the
sum of all consumer contracts (benefits).
MUTUAL AGREEMENT
CONTRACT
obligation(p) benefit(ci)
n
i=1
=
BENEFITS & OBLIGATIONS
TESTING THE PROVIDER
IN ISOLATION
MUTUAL AGREEMENT
CONTRACT Focus on checking that valid
inputs produce correct responses.
No need to test invalid inputs.
=
Garbage In Garbage Out
TESTING THE CONSUMER
IN ISOLATION
MUTUAL AGREEMENT
CONTRACT
Test that each consumer respects its contract.
Use contract to create a stub of the provider.
Invoke consumer behavior that calls the stub.
Consumer Provider Stub
Consumer Contract
TESTING CONSUMER-PROVIDER
INTEGRATION
MUTUAL AGREEMENT
CONTRACT
Test each consumer with the actual provider.
Use contract to create a request generator.
Send requests to provider and verify responses.
Consumer Provider
Consumer Contract Request Generator
TEST-RELATED GUIDELINES
MUTUAL AGREEMENT
CONTRACT
o Consumers define their own contracts.
o Provider facilitates resolution to any
contradictions among consumer
contracts.
o As service is updated, provider executes
contract tests from all of its consumers.
o If behavior changes in a way that
violates contract, provider must issue a
new version of the service with a new
contract.
DEFENSIVE
NO TRUST
TESTING STRATEGIES
PROVIDER IN ISOLATION
Test using valid and invalid inputs.
CONSUMER-PROVIDER INTEGRATION
Test that consumers handle all the error
responses generated by providers.
Code Impact?Improves Security Reduces Performance
Management Health Logging & Auditing Error Handling
Does service start
up, shut down and
restart gracefully?
Is service up and
running? Are its
dependencies?
Is the service recording
implementation and
domain-level events?
Do the failure retries
or fallbacks behave
as expected?
SERVICE READINESS TESTING
SERVICE INTEGRATION TESTING
Intra-Bounded
Context Tests
Inter-Bounded
Context Tests
Test Ordering
Integration
Pairwise
Integration
Neighborhood
Integration
SERVICE INTEGRATION TESTING
INTEGRATION TEST ORDERING
INTEGRATION TEST ORDERING
Seeks to find the “optimal” order for integration testing
that reduces the cost of creating stubs.
Assumption:
o Developing stubs is time-consuming and error prone.
Techniques:
o Minimize the number of stubs
o Minimize the overall stub complexity.
Order for Minimizing # Stubs?
BILLING
PAYMENTS
NOTIFICATIONS
PASSENGER
MANAGEMENT
DRIVER
MANAGEMENT
TRIP
MANAGEMENT
API
GATEWAY
PASSENGER
WEB UI
DRIVER
WEB UI
Order for Minimizing # Stubs?
BILLING
PAYMENTS
NOTIFICATIONS
PASSENGER
MANAGEMENT
DRIVER
MANAGEMENT
TRIP
MANAGEMENT
API
GATEWAY
PASSENGER
WEB UI
DRIVER
WEB UI
1
2
3
4
5
6
7
8
9
Alternative Solution
BILLING
PAYMENTS
NOTIFICATIONS
PASSENGER
MANAGEMENT
DRIVER
MANAGEMENT
TRIP
MANAGEMENT
API
GATEWAY
PASSENGER
WEB UI
DRIVER
WEB UI
3
1
4
2
6
5
8
7
9
PAIRWISE INTEGRATION
o Limit testing to each pair of services.
o Results in one integration test
for each edge in call graph.
o You may eliminate the need
for stubs and drivers by using
the actual code instead.
TRIP
MANAGEMENT
PASSENGER
WEB UI
BILLING
PAYMENTS
NOTIFICATIONS
DRIVER
MANAGEMENT
DRIVER
WEB UI
API
GATEWAY PASSENGER
MANAGEMENT
PAIRWISE INTEGRATION
The neighborhood of a
service is the set of services
that are one edge away from
the given service.
That is, all the immediate
predecessor services and
immediate successor
services of a given service.
TRIP
MANAGEMENT
PASSENGER
WEB UI
BILLING
PAYMENTS
NOTIFICATIONS
DRIVER
MANAGEMENT
DRIVER
WEB UI
API
GATEWAY PASSENGER
MANAGEMENT
Good at reducing the
number of integration test
sessions required
But…
Fault isolation can be
difficult when the
neighborhood is large.
TRIP
MANAGEMENT
PASSENGER
WEB UI
BILLING
PAYMENTS
NOTIFICATIONS
DRIVER
WEB UI
API
GATEWAY PASSENGER
MANAGEMENT
Driver Management’s Neighborhood
DRIVER
MANAGEMENT
?
SYSTEM TESTING
End User Testing
Functional,
User Experience
Performance Testing
Load, Scale
Stable, Reliable
Chaos and Stress
Robust, Secure,
Resilient
REST-assured
QUESTIONS?
THANK YOU.
Acknowledgements
Dionny Santiago, Test Architect
Robert Vanderwall, Test Architect
Contact Information
tariq_king@ultimatesoftware.com
www.linkedin.com/in/tariqking

More Related Content

What's hot

Performance Testing With Jmeter
Performance Testing With JmeterPerformance Testing With Jmeter
Performance Testing With JmeterAdam Goucher
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testingQualitest
 
How to Record Scripts in JMeter? JMeter Script Recording Tutorial | Edureka
How to Record Scripts in JMeter? JMeter Script Recording Tutorial | EdurekaHow to Record Scripts in JMeter? JMeter Script Recording Tutorial | Edureka
How to Record Scripts in JMeter? JMeter Script Recording Tutorial | EdurekaEdureka!
 
Jmeter Tester Certification
Jmeter Tester CertificationJmeter Tester Certification
Jmeter Tester CertificationVskills
 
This Is How We Test Our Performance With JMeter
This Is How We Test Our Performance With JMeterThis Is How We Test Our Performance With JMeter
This Is How We Test Our Performance With JMeterMedianova
 
Load Testing Strategy 101
Load Testing Strategy 101Load Testing Strategy 101
Load Testing Strategy 101iradari
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineeringhitdhits
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testingsonukalpana
 
Performance Testing
Performance TestingPerformance Testing
Performance Testingsharmaparish
 
JMeter & ColdFusion
JMeter & ColdFusion JMeter & ColdFusion
JMeter & ColdFusion isummation
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing Yogesh Deshmukh
 
Need for Speed: How to Performance Test the right way by Annie Bhaumik
Need for Speed: How to Performance Test the right way by Annie BhaumikNeed for Speed: How to Performance Test the right way by Annie Bhaumik
Need for Speed: How to Performance Test the right way by Annie BhaumikQA or the Highway
 

What's hot (20)

JMeter Database Performace Testing - Keytorc Approach
JMeter Database Performace Testing - Keytorc ApproachJMeter Database Performace Testing - Keytorc Approach
JMeter Database Performace Testing - Keytorc Approach
 
Performance Testing With Jmeter
Performance Testing With JmeterPerformance Testing With Jmeter
Performance Testing With Jmeter
 
Fundamentals Performance Testing
Fundamentals Performance TestingFundamentals Performance Testing
Fundamentals Performance Testing
 
JMETER-SKILLWISE
JMETER-SKILLWISEJMETER-SKILLWISE
JMETER-SKILLWISE
 
Load and performance testing
Load and performance testingLoad and performance testing
Load and performance testing
 
Jmeter From Scratch
Jmeter From ScratchJmeter From Scratch
Jmeter From Scratch
 
How to Record Scripts in JMeter? JMeter Script Recording Tutorial | Edureka
How to Record Scripts in JMeter? JMeter Script Recording Tutorial | EdurekaHow to Record Scripts in JMeter? JMeter Script Recording Tutorial | Edureka
How to Record Scripts in JMeter? JMeter Script Recording Tutorial | Edureka
 
Types of performance testing
Types of performance testingTypes of performance testing
Types of performance testing
 
Jmeter Tester Certification
Jmeter Tester CertificationJmeter Tester Certification
Jmeter Tester Certification
 
This Is How We Test Our Performance With JMeter
This Is How We Test Our Performance With JMeterThis Is How We Test Our Performance With JMeter
This Is How We Test Our Performance With JMeter
 
Load Testing Strategy 101
Load Testing Strategy 101Load Testing Strategy 101
Load Testing Strategy 101
 
Load testing jmeter
Load testing jmeterLoad testing jmeter
Load testing jmeter
 
Effektives Consulting - Performance Engineering
Effektives Consulting - Performance EngineeringEffektives Consulting - Performance Engineering
Effektives Consulting - Performance Engineering
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
How to start performance testing project
How to start performance testing projectHow to start performance testing project
How to start performance testing project
 
JMeter & ColdFusion
JMeter & ColdFusion JMeter & ColdFusion
JMeter & ColdFusion
 
Jmeter Walkthrough
Jmeter WalkthroughJmeter Walkthrough
Jmeter Walkthrough
 
Getting start with Performance Testing
Getting start with Performance Testing Getting start with Performance Testing
Getting start with Performance Testing
 
Need for Speed: How to Performance Test the right way by Annie Bhaumik
Need for Speed: How to Performance Test the right way by Annie BhaumikNeed for Speed: How to Performance Test the right way by Annie Bhaumik
Need for Speed: How to Performance Test the right way by Annie Bhaumik
 

Similar to Microservices Testing Strategies: The Good, the Bad, and the Reality

Service Virtualization: What, Who, When, and How
Service Virtualization: What, Who, When, and HowService Virtualization: What, Who, When, and How
Service Virtualization: What, Who, When, and HowTechWell
 
Continuous Testing through Service Virtualization
Continuous Testing through Service VirtualizationContinuous Testing through Service Virtualization
Continuous Testing through Service VirtualizationTechWell
 
Test Automation: Investment Today Pays Back Tomorrow
Test Automation: Investment Today Pays Back TomorrowTest Automation: Investment Today Pays Back Tomorrow
Test Automation: Investment Today Pays Back TomorrowTechWell
 
SpiraTest Overview Presentation (2019)
SpiraTest Overview Presentation (2019)SpiraTest Overview Presentation (2019)
SpiraTest Overview Presentation (2019)Inflectra
 
5 Steps to Get Precise SAP Impact-Based Testing
5 Steps to Get Precise SAP Impact-Based Testing5 Steps to Get Precise SAP Impact-Based Testing
5 Steps to Get Precise SAP Impact-Based TestingTurnKey Solutions
 
Applying Agile Principles to Test Automation Development
Applying Agile Principles to Test Automation DevelopmentApplying Agile Principles to Test Automation Development
Applying Agile Principles to Test Automation DevelopmentTechWell
 
Be More Effective: Test Automation below the UI
Be More Effective: Test Automation below the UIBe More Effective: Test Automation below the UI
Be More Effective: Test Automation below the UITechWell
 
Future of Software Testing – IP Led Testing
Future of Software Testing – IP Led TestingFuture of Software Testing – IP Led Testing
Future of Software Testing – IP Led TestingCigniti Technologies Ltd
 
Continuous Testing through Service Virtualization
Continuous Testing through Service VirtualizationContinuous Testing through Service Virtualization
Continuous Testing through Service VirtualizationTechWell
 
Automation Essentials for the Age of Agile
Automation Essentials for the Age of AgileAutomation Essentials for the Age of Agile
Automation Essentials for the Age of AgileApplause
 
The quality assurance checklist for progressive testing
The quality assurance checklist for progressive testingThe quality assurance checklist for progressive testing
The quality assurance checklist for progressive testingMaitrikpaida
 
The Quality Assurance Checklist for Progressive Testing
The Quality Assurance Checklist for Progressive TestingThe Quality Assurance Checklist for Progressive Testing
The Quality Assurance Checklist for Progressive TestingCygnet Infotech
 
End to-End Monitoring for ITSM and DevOps
End to-End Monitoring for ITSM and DevOpsEnd to-End Monitoring for ITSM and DevOps
End to-End Monitoring for ITSM and DevOpseG Innovations
 
SRE (service reliability engineer) on big DevOps platform running on the clou...
SRE (service reliability engineer) on big DevOps platform running on the clou...SRE (service reliability engineer) on big DevOps platform running on the clou...
SRE (service reliability engineer) on big DevOps platform running on the clou...DevClub_lv
 
Software testing as a service s taa-s
Software testing as a service   s taa-sSoftware testing as a service   s taa-s
Software testing as a service s taa-sRahul Kumar
 
Quality at the speed of digital
Quality   at the speed of digitalQuality   at the speed of digital
Quality at the speed of digitalrajni singh
 

Similar to Microservices Testing Strategies: The Good, the Bad, and the Reality (20)

Service Virtualization: What, Who, When, and How
Service Virtualization: What, Who, When, and HowService Virtualization: What, Who, When, and How
Service Virtualization: What, Who, When, and How
 
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGESCLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
CLOUD TESTING MODEL – BENEFITS, LIMITATIONS AND CHALLENGES
 
Continuous Testing through Service Virtualization
Continuous Testing through Service VirtualizationContinuous Testing through Service Virtualization
Continuous Testing through Service Virtualization
 
Test Automation: Investment Today Pays Back Tomorrow
Test Automation: Investment Today Pays Back TomorrowTest Automation: Investment Today Pays Back Tomorrow
Test Automation: Investment Today Pays Back Tomorrow
 
SpiraTest Overview Presentation (2019)
SpiraTest Overview Presentation (2019)SpiraTest Overview Presentation (2019)
SpiraTest Overview Presentation (2019)
 
5 Steps to Get Precise SAP Impact-Based Testing
5 Steps to Get Precise SAP Impact-Based Testing5 Steps to Get Precise SAP Impact-Based Testing
5 Steps to Get Precise SAP Impact-Based Testing
 
Applying Agile Principles to Test Automation Development
Applying Agile Principles to Test Automation DevelopmentApplying Agile Principles to Test Automation Development
Applying Agile Principles to Test Automation Development
 
Be More Effective: Test Automation below the UI
Be More Effective: Test Automation below the UIBe More Effective: Test Automation below the UI
Be More Effective: Test Automation below the UI
 
Future of Software Testing – IP Led Testing
Future of Software Testing – IP Led TestingFuture of Software Testing – IP Led Testing
Future of Software Testing – IP Led Testing
 
Continuous Testing through Service Virtualization
Continuous Testing through Service VirtualizationContinuous Testing through Service Virtualization
Continuous Testing through Service Virtualization
 
Automation Essentials for the Age of Agile
Automation Essentials for the Age of AgileAutomation Essentials for the Age of Agile
Automation Essentials for the Age of Agile
 
The quality assurance checklist for progressive testing
The quality assurance checklist for progressive testingThe quality assurance checklist for progressive testing
The quality assurance checklist for progressive testing
 
The Quality Assurance Checklist for Progressive Testing
The Quality Assurance Checklist for Progressive TestingThe Quality Assurance Checklist for Progressive Testing
The Quality Assurance Checklist for Progressive Testing
 
End to-End Monitoring for ITSM and DevOps
End to-End Monitoring for ITSM and DevOpsEnd to-End Monitoring for ITSM and DevOps
End to-End Monitoring for ITSM and DevOps
 
Ta3s - Testing Banking and Finance Applications
Ta3s - Testing Banking and Finance ApplicationsTa3s - Testing Banking and Finance Applications
Ta3s - Testing Banking and Finance Applications
 
Ta3s Corporate Overview Brochure
Ta3s Corporate Overview BrochureTa3s Corporate Overview Brochure
Ta3s Corporate Overview Brochure
 
The Devops Handbook
The Devops HandbookThe Devops Handbook
The Devops Handbook
 
SRE (service reliability engineer) on big DevOps platform running on the clou...
SRE (service reliability engineer) on big DevOps platform running on the clou...SRE (service reliability engineer) on big DevOps platform running on the clou...
SRE (service reliability engineer) on big DevOps platform running on the clou...
 
Software testing as a service s taa-s
Software testing as a service   s taa-sSoftware testing as a service   s taa-s
Software testing as a service s taa-s
 
Quality at the speed of digital
Quality   at the speed of digitalQuality   at the speed of digital
Quality at the speed of digital
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 

Recently uploaded (20)

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 

Microservices Testing Strategies: The Good, the Bad, and the Reality

  • 1.                 W14   Test  Techniques   5/10/17  15:00             Microservices  Testing  Strategies:  The   Good,  the  Bad,  and  the  Reality     Presented  by:         Tariq  King     Ultimate  Software     Brought  to  you  by:                 350  Corporate  Way,  Suite  400,  Orange  Park,  FL  32073     888-­‐-­‐-­‐268-­‐-­‐-­‐8770  ·∙·∙  904-­‐-­‐-­‐278-­‐-­‐-­‐0524  -­‐  info@techwell.com  -­‐  http://www.starwest.techwell.com/      
  • 2.         Tariq  King     Tariq  King  is  the  director  of  quality  engineering  at  Ultimate  Software.  With  more   than  fifteen  years  of  experience  in  software  testing  research  and  practice,  Tariq   provides  technical  leadership,  people  leadership,  strategic  direction,  and  staff   training  in  software  quality  and  test  engineering.  He  has  previously  held  positions  of   test  manager,  test  architect,  test  lead,  researcher,  and  college  professor.  Tariq  is  a   frequent  presenter  at  conferences  and  workshops,  has  published  more  than  thirty   research  articles  in  IEEE  and  ACM  sponsored  journals,  and  has  developed  and   taught  software  testing  courses  in  both  industry  and  academia.  Contact  him  via   LinkedIn.    
  • 3. MICROSERVICES TESTINGA hero will emerge on 5.10.2017 at the Rosen Center Hotel, Orlando FL. BADTHE THE GOOD REALITY AND THE Tariq King and ARCHITECT
  • 5. TESTER AGENDA o INTRODUCTION TO MICROSERVICES o MICROSERVICES TESTING “REALITY CHECK” o TESTING STRATEGIES o UNIT TESTING o CONTRACT TESTING o READINESS TESTING o INTEGRATION TESTING o SYSTEM TESTING Show Up Talk Leave
  • 6. MICROSERVICES MICROSERVICES Functional decomposition of system into small, independently deployable services. Functional decomposition means vertical slicing as opposed to horizontal slicing into layers.
  • 7. Functional decomposition of system into small, independently deployable services. PRESENTATION APPLICATION LOGIC DATA ACCESS MICROSERVICES Functional decomposition of system into small, independently deployable services. ‘Micro’ refers to small size but there is no universal definition of small. As small as possible but as big as necessary to represent domain. Manageable by a team of five to six persons. MICROSERVICES
  • 8. Functional decomposition of system into small, independently deployable services. PASSENGER MANAGEMENT BILLING NOTIFICATIONS PAYMENTS TRIP MANAGEMENT DRIVER MANAGEMENT MICROSERVICES Functional decomposition of system into small, independently deployable services. Independently deployable also implies that each microservice is independently scalable. MICROSERVICES
  • 9. Functional decomposition of system into small, independently deployable services. Scale by Using Microservices Y-Axis (functional decomposition) Scale by Cloning Services X-Axis (horizontal duplication) Scale by Sharding Databases Z-Axis (data partitioning) MAXIMUM SCALABILITY MONOLITHIC SYSTEM MICROSERVICES Functional decomposition of system into small, independently deployable services. MICROSERVICES Single Responsibility Encapsulation (Private) Monitored (Observable) Clustered (Instanced) Technology Agnostic
  • 10. MICROSERVICES TESTING Makes the dependency relationships between components more explicit. Single responsibility allows for more focused testing and debugging. Monitoring improves observability. Clustering supports test set up/debugging. Isolation and independence facilitate quicker test set up and faster cycles. Opportunity to reuse existing knowledge and create new knowledge and tools. THE GOOD THE BAD Natural fear associated with new paradigm. Additional complexity complicates testing. (network, messaging, varied technologies) Inter-service calls over network have higher cost than in-process calls in monolith. May lead to an explosion in the number of tools and technologies being maintained. If microservice is too fine-grained, overhead can outweigh its utility (nanoservice). Over-mocking can lead to unrealistic tests.
  • 11. Isolation Containment Explicit Relationships Knowledge Extremism Natural Fear Overhead Unanswered Questions Opportunities WHAT? WHERE? WHEN? COMPLEXITY, PERFORMANCE NANOSERVICE ANTI-PATTERN, OVER-MOCKING CHANGE INTEGRATION, PROCESS MORE SEAMS NEW APPROACHES, TOOLS TEST FOCUS, DEBUGGING REUSE CREATE THE REALITY KNOWLEDGE REUSE TECHNIQUES METHODS PRINCIPLES TOOLS COMPLEXITY, PERFORMANCE UNIT TESTING SERVICE CONTRACT SERVICE READINESS SERVICE INTEGRATION SYSTEM TESTING PYRAMID
  • 12. UNIT TESTING 1. Know what you are testing. 2. Test results not implementation. 3. Test one thing at a time. 4. Make tests readable and understandable. 5. Make tests independent and self-sufficient. 6. Make tests deterministic. 7. Repeat yourself when necessary. 8. Measure code coverage but focus on test coverage. GUIDELINES UNIT TESTINGTUTORIALS UNIT TESTING: WHAT EVERY TESTER SHOULD KNOW BEYOND UNIT TESTING: MORE OF WHAT TESTERS SHOULD KNOW
  • 13. CONTRACT MUTUAL AGREEMENT DEFENSIVE NO TRUST Benefit for consumer is an obligation for the provider, and vice-versa. Full contract (obligation) for provider is the sum of all consumer contracts (benefits). MUTUAL AGREEMENT CONTRACT obligation(p) benefit(ci) n i=1 = BENEFITS & OBLIGATIONS
  • 14. TESTING THE PROVIDER IN ISOLATION MUTUAL AGREEMENT CONTRACT Focus on checking that valid inputs produce correct responses. No need to test invalid inputs. = Garbage In Garbage Out TESTING THE CONSUMER IN ISOLATION MUTUAL AGREEMENT CONTRACT Test that each consumer respects its contract. Use contract to create a stub of the provider. Invoke consumer behavior that calls the stub. Consumer Provider Stub Consumer Contract
  • 15. TESTING CONSUMER-PROVIDER INTEGRATION MUTUAL AGREEMENT CONTRACT Test each consumer with the actual provider. Use contract to create a request generator. Send requests to provider and verify responses. Consumer Provider Consumer Contract Request Generator TEST-RELATED GUIDELINES MUTUAL AGREEMENT CONTRACT o Consumers define their own contracts. o Provider facilitates resolution to any contradictions among consumer contracts. o As service is updated, provider executes contract tests from all of its consumers. o If behavior changes in a way that violates contract, provider must issue a new version of the service with a new contract.
  • 16. DEFENSIVE NO TRUST TESTING STRATEGIES PROVIDER IN ISOLATION Test using valid and invalid inputs. CONSUMER-PROVIDER INTEGRATION Test that consumers handle all the error responses generated by providers. Code Impact?Improves Security Reduces Performance Management Health Logging & Auditing Error Handling Does service start up, shut down and restart gracefully? Is service up and running? Are its dependencies? Is the service recording implementation and domain-level events? Do the failure retries or fallbacks behave as expected? SERVICE READINESS TESTING
  • 17. SERVICE INTEGRATION TESTING Intra-Bounded Context Tests Inter-Bounded Context Tests Test Ordering Integration Pairwise Integration Neighborhood Integration SERVICE INTEGRATION TESTING
  • 18. INTEGRATION TEST ORDERING INTEGRATION TEST ORDERING Seeks to find the “optimal” order for integration testing that reduces the cost of creating stubs. Assumption: o Developing stubs is time-consuming and error prone. Techniques: o Minimize the number of stubs o Minimize the overall stub complexity.
  • 19. Order for Minimizing # Stubs? BILLING PAYMENTS NOTIFICATIONS PASSENGER MANAGEMENT DRIVER MANAGEMENT TRIP MANAGEMENT API GATEWAY PASSENGER WEB UI DRIVER WEB UI Order for Minimizing # Stubs? BILLING PAYMENTS NOTIFICATIONS PASSENGER MANAGEMENT DRIVER MANAGEMENT TRIP MANAGEMENT API GATEWAY PASSENGER WEB UI DRIVER WEB UI 1 2 3 4 5 6 7 8 9
  • 20. Alternative Solution BILLING PAYMENTS NOTIFICATIONS PASSENGER MANAGEMENT DRIVER MANAGEMENT TRIP MANAGEMENT API GATEWAY PASSENGER WEB UI DRIVER WEB UI 3 1 4 2 6 5 8 7 9 PAIRWISE INTEGRATION o Limit testing to each pair of services. o Results in one integration test for each edge in call graph. o You may eliminate the need for stubs and drivers by using the actual code instead.
  • 21. TRIP MANAGEMENT PASSENGER WEB UI BILLING PAYMENTS NOTIFICATIONS DRIVER MANAGEMENT DRIVER WEB UI API GATEWAY PASSENGER MANAGEMENT PAIRWISE INTEGRATION The neighborhood of a service is the set of services that are one edge away from the given service. That is, all the immediate predecessor services and immediate successor services of a given service.
  • 22. TRIP MANAGEMENT PASSENGER WEB UI BILLING PAYMENTS NOTIFICATIONS DRIVER MANAGEMENT DRIVER WEB UI API GATEWAY PASSENGER MANAGEMENT Good at reducing the number of integration test sessions required But… Fault isolation can be difficult when the neighborhood is large.
  • 23. TRIP MANAGEMENT PASSENGER WEB UI BILLING PAYMENTS NOTIFICATIONS DRIVER WEB UI API GATEWAY PASSENGER MANAGEMENT Driver Management’s Neighborhood DRIVER MANAGEMENT ? SYSTEM TESTING End User Testing Functional, User Experience Performance Testing Load, Scale Stable, Reliable Chaos and Stress Robust, Secure, Resilient
  • 24. REST-assured QUESTIONS? THANK YOU. Acknowledgements Dionny Santiago, Test Architect Robert Vanderwall, Test Architect Contact Information tariq_king@ultimatesoftware.com www.linkedin.com/in/tariqking