SlideShare a Scribd company logo
1 of 184
Download to read offline
@mogronalol
Simulating APIs for Effective Testing:
(Micro)Service Virtualisation
1
Andrew Morgan
@mogronalol
OpenCredo & Spectolabs
@mogronalol 2
About Me
• Consultant at OpenCredo
• Background mainly with
Java and now Go
• Spectolabs
Andrew Morgan
@mogronalol
@mogronalol 3
Agenda
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol 4
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol
-INFOX
5
Distributed Systems
@mogronalol
Microservices
6
Payment
Company
Booking
Flights
Auth
@mogronalol
Microservices
6
Payment
Company
Booking
Flights
Auth
@mogronalol
A natural evolution...
7
@mogronalol
Challenges…
8
@mogronalol 9
Airline Booking Application
@mogronalol 9
Airline Booking Application
• Microservice architecture
@mogronalol 9
Airline Booking Application
• Microservice architecture
• Integration with third party services
@mogronalol 9
Airline Booking Application
• Microservice architecture
• Integration with third party services
• Integration with legacy internal services
@mogronalol 9
Airline Booking Application
• Microservice architecture
• Integration with third party services
• Integration with legacy internal services
• Heavy resource consumption
@mogronalol 9
Airline Booking Application
• Microservice architecture
• Integration with third party services
• Integration with legacy internal services
• Heavy resource consumption
• A standard CI/CD pipeline
@mogronalol 10
Resources
@mogronalol 10
Resources
Booking
@mogronalol 10
Resources
Booking
Flights
@mogronalol 10
Resources
Booking
Flights
Rewards
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
Cost
@mogronalol 11
@mogronalol 12
Licensing
@mogronalol 12
Licensing
Consumer
Producer
@mogronalol 12
Licensing
Consumer
Producer
Third party
@mogronalol 12
Licensing
Consumer
Producer
Consumer
Producer
Third party
@mogronalol 12
Licensing
Consumer
Producer
Consumer
Producer
Third party Cost
@mogronalol 13
Dependency Constraints
@mogronalol 13
Dependency Constraints
Consumer
Producer
@mogronalol 13
Dependency Constraints
Consumer
Producer
@mogronalol 13
Dependency Constraints
Consumer
Producer
Consumer
Producer
@mogronalol 14
Flakey Dependencies
@mogronalol 14
Flakey Dependencies
Consumer
Producer
@mogronalol 14
Flakey Dependencies
Consumer
Producer
Consumer
Producer
@mogronalol 15
Doesn't exist
@mogronalol 15
Doesn't exist
Consumer
?
@mogronalol 16
Non Deterministic
@mogronalol 16
Non Deterministic
Consumer
Booking
Service
@mogronalol 16
Non Deterministic
Consumer
Booking
Service {
“date” : “2013-01-08”,
…
}
@mogronalol 16
Non Deterministic
assertThat(booking.getDate())
.isEqualTo(LocalDate.of(2013,1,8));
Consumer
Booking
Service {
“date” : “2013-01-08”,
…
}
@mogronalol 16
Non Deterministic
assertThat(booking.getDate())
.isEqualTo(LocalDate.of(2013,1,8));
Consumer
Booking
Service {
“date” : “2013-01-08”,
…
}
@mogronalol 16
Non Deterministic
assertThat(booking.getDate())
.isEqualTo(LocalDate.of(2013,1,8));
Consumer
Booking
Service {
“date” : “2016-02-07”,
…
}
@mogronalol 17
Fault Injection
@mogronalol 17
Fault Injection
Consumer
Producer
@mogronalol 17
Fault Injection
Consumer
Producer
Consumer
Producer
@mogronalol 17
Fault Injection
Consumer
Producer
Consumer
Producer
4xx, 5xx, timeouts
@mogronalol 17
Fault Injection
Consumer
Producer
Consumer
Producer
4xx, 5xx, timeouts
Operationally
challenging to trigger
faults
@mogronalol 18
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol 19
Service Virtualisation
@mogronalol 19
Service Virtualisation
• Emulation of real service
@mogronalol 19
Service Virtualisation
• Emulation of real service
• Non-intrusive
@mogronalol 19
Service Virtualisation
• Emulation of real service
• Non-intrusive
• Lightweight - or should be
@mogronalol 20
Service Virtualisation
@mogronalol 20
Service Virtualisation
Consumer
@mogronalol 20
Service Virtualisation
Consumer Producer
@mogronalol 20
Service Virtualisation
Consumer
Virtual
Producer
@mogronalol 21
Creating Data
@mogronalol 21
Creating Data
Consumer
@mogronalol 21
Creating Data
Consumer Producer
@mogronalol 21
Creating Data
Consumer Producer
Service
Virtualisation
Tool
@mogronalol 22
Creating Data
https://github.com/tomakehurst/wiremock
@mogronalol 23
Proxy Mode
@mogronalol 23
Proxy Mode
Consumer
@mogronalol 23
Proxy Mode
Consumer Producer
@mogronalol 23
Proxy Mode
Consumer Producer
Service
Virtualisation
Tool
@mogronalol 24
Webserver / Facade Mode
@mogronalol 24
Webserver / Facade Mode
Consumer
@mogronalol 24
Webserver / Facade Mode
Consumer Producer
@mogronalol 24
Webserver / Facade Mode
Consumer Producer
@mogronalol 24
Webserver / Facade Mode
Consumer Producer
Service
Virtualisation
Tool
@mogronalol 24
Webserver / Facade Mode
Consumer Producer
Service
Virtualisation
Tool
@mogronalol 25
Not Mocking
Service Under Test
Dependant Service
Http
@mogronalol 25
Not Mocking
Service Under Test
Mocking
Dependant Service
Http
@mogronalol 25
Not Mocking
Service Under Test
Mocking
@mogronalol 25
Not Mocking
Service Under Test
Virtual Service
@mogronalol 25
Not Mocking
Service Under Test
Virtual Service
Mocks bleed into the
architectural boundary of your
application
@mogronalol 26
Open Source Tooling
@mogronalol 26
Open Source Tooling
@mogronalol 26
Open Source Tooling
@mogronalol 26
Open Source Tooling
@mogronalol 27
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol 28
Record and replay
@mogronalol 28
Record and replay
Consumer
@mogronalol 28
Record and replay
Consumer
External
Producer
@mogronalol 28
Record and replay
Consumer
External
Producer
Service
Virtualisati
on Tool
@mogronalol 28
Record and replay
Consumer
External
Producer
Service
Virtualisati
on Tool
@mogronalol 29
JUnit Example
@mogronalol 29
JUnit Example
@Test

public void shouldBeAbleToRetrieveABooking() throws URISyntaxException {

// Given

final int bookingId = 1;



// When

final Booking booking = bookingServiceGateway.getBooking(bookingId);



// Then

assertThat(booking.getCustomer()).isEqualTo(“Andrew Morgan”);
assertThat(booking.getDate()).isEqualTo(LocalDate.of(2016,3,1));

}
@mogronalol 29
JUnit Example
@Rule
public HoverflyRule hoverflyRule = HoverflyRule.inCaptureMode(“src/test/
resources/external.json").build();
@Test

public void shouldBeAbleToRetrieveABooking() throws URISyntaxException {

// Given

final int bookingId = 1;



// When

final Booking booking = bookingServiceGateway.getBooking(bookingId);



// Then

assertThat(booking.getCustomer()).isEqualTo(“Andrew Morgan”);
assertThat(booking.getDate()).isEqualTo(LocalDate.of(2016,3,1));

}
@mogronalol 30
JUnit Example
{

"data": [

{

"request": {

"path": "/api/bookings/1",

"method": "GET",

"destination": "www.my-test.com",

"query": null,

"body": ""

},

"response": {

"status": 200,

"body": “{”customer”:”Andrew Morgan", ”date”:
”2016-03-01”}}}”,

"headers": {

"Content-Type": [

"application/json"

]

}

}

}

]

}
@mogronalol 31
JUnit Example
@Test

public void shouldBeAbleToRetrieveABooking() throws URISyntaxException {

// Given

final int bookingId = 1;



// When

final Booking booking = bookingServiceGateway.getBooking(bookingId);



// Then

assertThat(booking.getCustomer()).isEqualTo(“Andrew Morgan”);
assertThat(booking.getDate()).isEqualTo(LocalDate.of(2016,3,1));

}
@Rule
public HoverflyRule hoverflyRule =
HoverflyRule.buildFromClassPathResource(“external.json").build();
@mogronalol 32
Advantages
@mogronalol 32
Advantages
• Isolation
@mogronalol 32
Advantages
• Isolation
• Flaky dependencies
@mogronalol 32
Advantages
• Isolation
• Flaky dependencies
• Rate limiting
@mogronalol 32
Advantages
• Isolation
• Flaky dependencies
• Rate limiting
• Deterministic
@mogronalol 32
Advantages
• Isolation
• Flaky dependencies
• Rate limiting
• Deterministic
• Licensing
@mogronalol 33
Deployment and Infrastructure
@mogronalol 33
Deployment and Infrastructure
Consumer
External
Producer
@mogronalol 33
Deployment and Infrastructure
Consumer
External
Producer
Internal
Producer
Internal
Producer
Internal
Producer
@mogronalol 33
Deployment and Infrastructure
Consumer
Virtual
Service
Virtual
Service
Virtual
Service
Virtual
Service
@mogronalol 34
CLI Example
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
$ hoverctl start —proxy-port 8081
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
$ hoverctl start —proxy-port 8081
$ hoverctl import payments-service-simulation.json
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
$ hoverctl start —proxy-port 8081
$ hoverctl import payments-service-simulation.json
$ curl http://www.account-service.com/api/v1/accounts/1 —proxy http://
localhost:8080
[{"name":"foo"}]
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
$ hoverctl start —proxy-port 8081
$ hoverctl import payments-service-simulation.json
$ curl http://www.account-service.com/api/v1/accounts/1 —proxy http://
localhost:8080
[{"name":"foo"}]
$ curl http://www.payment-service.com/api/v1/payments/1 -proxy http://
localhost:8081
[{“amount":"£23.27"}]
@mogronalol 35
@mogronalol 36
Fault Injection
@mogronalol 36
Fault Injection
Consumer
External
Producer
Service
Virtualisation
Tool
@mogronalol 36
Fault Injection
Consumer
External
Producer
Service
Virtualisation
Tool
Middleware
@mogronalol 37
Fault Injection
@mogronalol 38
Advantages
@mogronalol 38
Advantages
• Transparent
@mogronalol 38
Advantages
• Transparent
• Configurable
@mogronalol 38
Advantages
• Transparent
• Configurable
• Operationally simple
@mogronalol 39
Documentation-Driven
@mogronalol 39
Documentation-Driven
Consumer ?
@mogronalol 39
Documentation-Driven
Consumer
@mogronalol 39
Documentation-Driven
Consumer
Transform
@mogronalol
Virtual Service
39
Documentation-Driven
Consumer
Transform
@mogronalol 40
Advantages
@mogronalol 40
Advantages
• Documentation Driven Development
@mogronalol 40
Advantages
• Documentation Driven Development
• Work in Parallel
@mogronalol 41
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol 42
Data Synchronisation Issues
@mogronalol 42
Data Synchronisation Issues
Consumer Virtual
Service
@mogronalol 42
Data Synchronisation Issues
ConsumerConsumer Virtual
Service
@mogronalol 42
Data Synchronisation Issues
ConsumerConsumerConsumer Real Service
@mogronalol 43
Ownership
@mogronalol 43
Ownership
Own Consumer Own Producer Strategy
@mogronalol 43
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
@mogronalol 44
Integration Contract Testing
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
Diff
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
Diff
Integration Testing
or
Contract Diff
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
Diff
No diff?
Integration Testing
or
Contract Diff
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
Diff
No diff?
Diff?
Integration Testing
or
Contract Diff
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 45
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
@mogronalol 45
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
Virtual Service as
First Class Citizen
@mogronalol 46
Virtual Service as First Class Citizen
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
Transform to
simulation
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
Transform to
simulation
Publish
Virtual
Service
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
Parse
Contract
Transform to
simulation
Publish
Virtual
Service
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
Parse
Contract
Transform to
simulation
Parse
Documentati
on
Publish
Virtual
Service
@mogronalol 47
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
Virtual Service as
First Class Citizen
@mogronalol 47
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
Consumer Driven
Contract Testing
Virtual Service as
First Class Citizen
@mogronalol 48
Consumer Driven Contract Testing
http://www.martinfowler.com/articles/consumerDrivenContracts.html
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Implement
Consumer
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Implement
Consumer
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Generate
Producer
Contract
Tests
Implement
Consumer
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
Implement
Producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Generate
Producer
Contract
Tests
Implement
Consumer
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
Implement
Producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Generate
Producer
Contract
Tests
Implement
Consumer
Run
Consumer
Contract
Tests
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
Implement
Producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Generate
Producer
Contract
Tests
Implement
Consumer
Run
Consumer
Contract
Tests
@mogronalol 49
Consumer Driven Contract Testing
http://www.martinfowler.com/articles/consumerDrivenContracts.html
@mogronalol 49
Consumer Driven Contract Testing
Change
producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
@mogronalol 49
Consumer Driven Contract Testing
Change
producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Run
Consumer
Contract
Tests
@mogronalol 49
Consumer Driven Contract Testing
Change
producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Run
Consumer
Contract
Tests
@mogronalol 50
Tools
@mogronalol 50
Tools
@mogronalol 50
Tools
@mogronalol 51
Testing Pyramid
End to end
Integration / Service Testing
Unit Testing
@mogronalol 51
Testing Pyramid
End to end
Integration / Service Testing
Unit Testing
Consumer Driven
Contract Testing
@mogronalol 51
Testing Pyramid
End to end
Integration / Service Testing
Unit Testing
Consumer Driven
Contract Testing
@mogronalol 52
Summary
@mogronalol 52
Summary
• Cost reduction from simulated services
@mogronalol 52
Summary
• Cost reduction from simulated services
• Easy deployment of simulations
@mogronalol 52
Summary
• Cost reduction from simulated services
• Easy deployment of simulations
• Less dependant on end to end testing
@mogronalol 52
Summary
• Cost reduction from simulated services
• Easy deployment of simulations
• Less dependant on end to end testing
• Better feedback cycle
@mogronalol
Questions?
53
@mogronalol
https://github.com/mogronalol

More Related Content

Similar to Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the 21st Century

Api Simulation Patterns for Better Testing
Api Simulation Patterns for Better TestingApi Simulation Patterns for Better Testing
Api Simulation Patterns for Better TestingAndrew Morgan
 
Natural born conversion killers - Conversion Jam
Natural born conversion killers - Conversion JamNatural born conversion killers - Conversion Jam
Natural born conversion killers - Conversion JamCraig Sullivan
 
Conversionista : Conversion manager course - Stockholm 20 march 2013
Conversionista : Conversion manager course  - Stockholm 20 march 2013Conversionista : Conversion manager course  - Stockholm 20 march 2013
Conversionista : Conversion manager course - Stockholm 20 march 2013Craig Sullivan
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Anand Bagmar
 
Testing strategies in microservices
Testing strategies in microservicesTesting strategies in microservices
Testing strategies in microservicesGeekNightHyderabad
 
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3Lari Hotari
 
Project backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepProject backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepAswin Vijayakumar
 
Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky TestsAnand Bagmar
 
Supercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the EdgeSupercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the EdgeOptimizely
 
Software Testing for SEO
Software Testing for SEOSoftware Testing for SEO
Software Testing for SEOMichael King
 
Testing RESTful Web Services
Testing RESTful Web ServicesTesting RESTful Web Services
Testing RESTful Web ServicesTechWell
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineSmartBear
 
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...Mike Villiger
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureEduards Sizovs
 
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIsBirmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIsJean-Louis MONTEIRO
 
Building Outside-in Planning Processes
Building Outside-in Planning ProcessesBuilding Outside-in Planning Processes
Building Outside-in Planning ProcessesLora Cecere
 
Supply Chain Insights Global Summit: Presentation on Outside-in Projects
Supply Chain Insights Global Summit: Presentation on Outside-in ProjectsSupply Chain Insights Global Summit: Presentation on Outside-in Projects
Supply Chain Insights Global Summit: Presentation on Outside-in ProjectsSupplychainInsights
 
Deep Dive into Disaster Recovery in the Cloud
Deep Dive into Disaster Recovery in the CloudDeep Dive into Disaster Recovery in the Cloud
Deep Dive into Disaster Recovery in the CloudBluelock
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllLegacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllMuly Gottlieb
 
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...Isa Vilacides
 

Similar to Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the 21st Century (20)

Api Simulation Patterns for Better Testing
Api Simulation Patterns for Better TestingApi Simulation Patterns for Better Testing
Api Simulation Patterns for Better Testing
 
Natural born conversion killers - Conversion Jam
Natural born conversion killers - Conversion JamNatural born conversion killers - Conversion Jam
Natural born conversion killers - Conversion Jam
 
Conversionista : Conversion manager course - Stockholm 20 march 2013
Conversionista : Conversion manager course  - Stockholm 20 march 2013Conversionista : Conversion manager course  - Stockholm 20 march 2013
Conversionista : Conversion manager course - Stockholm 20 march 2013
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021
 
Testing strategies in microservices
Testing strategies in microservicesTesting strategies in microservices
Testing strategies in microservices
 
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
 
Project backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepProject backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creep
 
Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky Tests
 
Supercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the EdgeSupercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the Edge
 
Software Testing for SEO
Software Testing for SEOSoftware Testing for SEO
Software Testing for SEO
 
Testing RESTful Web Services
Testing RESTful Web ServicesTesting RESTful Web Services
Testing RESTful Web Services
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution Pipeline
 
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIsBirmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
 
Building Outside-in Planning Processes
Building Outside-in Planning ProcessesBuilding Outside-in Planning Processes
Building Outside-in Planning Processes
 
Supply Chain Insights Global Summit: Presentation on Outside-in Projects
Supply Chain Insights Global Summit: Presentation on Outside-in ProjectsSupply Chain Insights Global Summit: Presentation on Outside-in Projects
Supply Chain Insights Global Summit: Presentation on Outside-in Projects
 
Deep Dive into Disaster Recovery in the Cloud
Deep Dive into Disaster Recovery in the CloudDeep Dive into Disaster Recovery in the Cloud
Deep Dive into Disaster Recovery in the Cloud
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllLegacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
 
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
 

Recently uploaded

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 

Recently uploaded (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 

Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the 21st Century