SlideShare a Scribd company logo
Antoine Craske
HOW WE DECIDED TO TEST
EVENT-DRIVEN MICROSERVICES
2
We had to accelerate
3
A first strategic project came in
Order
Management
Transport
Management
(external)
Parcel
Management
Warehouse
Management
4
Moving to event-driven microservices
Order
Management
Transport
Management
(external)
Parcel
Management
Warehouse
Management
Transport
Management
Parcel
Management
App
App
App
App
App
App
MS MS MS MS MS MS MS MS
MS MS MS MS
MS MS MS MS
Order
Management
App
App
Warehouse
Management
App
App
App
5
Brought distributed processing
MS
Order
Mgmt
MS
…
Order
Mgmt
MS MS
…
API
6
Decoupling, Events, Decentralized
Asynchronous event processing testing?
Eventual consistency versus business transactions?
Which test data management (TDM) strategies?
Which test environment management (TEM) strategies?
7
We prioritized our test needs
Functional for end-to-end Business & individual component
Integration for availability and resiliency of the solution
Unit for code architecture and modularity
Load-testing to secure specific sales period (e.g. Black Friday)
GUI testing as only used for configuration elements
Exploratory testing to be performed along the project
Security not that a concern as internal services not exposed
Volume testing with forecasted throughput
1
2
8
Within real-life constraints
• Scalable solution for 20-50 microservices
• 4 weeks (e.g. 2 sprints) to have a working solution
• CI/CD testing through existing environments (qa, uat, staging, prod)
• Reduce the risk and test as early as possible
• Tests to run fast with reliability and confidence
9
Functional Testing
• End to end business process
• Individual functions
MS
Order
Mgmt
MS
…
Order
Mgmt
MS MS
…
API
CreateParcel
GetParcel
Main cases
Edge cases
Error cases
10
Functional Testing
• End to end business process
• Individual functions
MS
Order
Mgmt
MS
…
Order
Mgmt
MS MS
…
API
Use Case 1
Use Case ..
Use Case n
Use Case 1
Use Case ..
Use Case n
Use Case 1
Use Case ..
Use Case n
Use Case 1
Use Case ..
Use Case n
Use Case 1
Use Case ..
Use Case n
Do we need integration test with functional and unit test?
• For exceptional specific cases, maybe
Do we need contract testing?
• To verify the decoupled microservices can call Kafka?
Does the project needs to test Kafka/K8S platform availability?
• Is it no the job of SRE team?
But how do we ensure error management and retries?
• Are functional tests covering with edge cases?
Integration Testing Availability and resiliency
11
Unit Test Code architecture and modularity
• Simple to write and maintain
• Focused and no external dependencies
• Reliable and repeatable
• Self-checked and explanatory
• Run fast (<100ms)
12
Components under test
Mocks for components
Source: mockframeworks.com
13
Load Testing Specific sales period (e.g. Black Friday)
MS
Order
Mgmt
MS
…
Order
Mgmt
MS MS
…
API Nominal
Loaded
…
14
Test Environment & Data
GUI
E2E (Full)
E2E (Process)
Component
Integration
Unit
Load-Test
Security, Volume, …
dev
staging
qa uat staging prod
qa uat staging prod
uat staging prod
N/A
(Mock/Contract)
Refresh from env
Test Generated &
Cleaned
Refresh from env
Refresh from env
dev
GUI
E2E (Full)
E2E (Process)
Component
Integration
Unit
Load-Test
Security, Volume, …
CI/CD Quality Gates
Manual / Scheduled
Manual / Scheduled
CI / Manual in local
Manual Launch
15
Not yet a Christmas tree ☺
GUI
E2E (Full)
E2E (Process)
Component
Integration
Unit
Load-Test
Security, Volume, …
irregular
This solution is working fine and implemented fast by PO/Dev/QA
teams, for up to 30-50 microservices
GUI
E2E (Full)
E2E (Process)
Component
Integration
Unit
Load-Test
Security, Volume, …
dev
staging
qa uat staging prod
qa uat staging prod
uat staging prod
N/A
(Mock/Contract)
Refresh from env
Test Generated &
Cleaned
Refresh from env
Refresh from env
dev
16
Open source Test Stack
GUI
E2E (Full)
E2E (Process)
Component
Integration
Unit
Load-Test
Security, Volume, …
irregular
This solution is working fine and implemented fast by PO/Dev/QA
teams, for up to 30-50 microservices
GUI
E2E (Full)
E2E (Process)
Component
Integration
Unit
Load-Test
Security, Volume, …
dev
staging
qa uat staging prod
qa uat staging prod
uat staging prod
N/A
(Mock/Contract)
Refresh from env
Test Generated &
Cleaned
Refresh from env
Refresh from env
dev
17
Our evolution roadmap
Secure design quality for reliability, performance and testability
Spaghetti microservices, hard to develop, test and operate
Ephemeral environments for reliability, scaling and lower costs
On-demand test environments, refreshed, destroyed
Systematic and automated load and performance test
Enabling combination of load, stress and volume test
18
Takeaways
Can’t we avoid testing in the first place?
Good design, then common librairies, platform, retry logic, then project requirements
Align test requirements on business, priorities and constraints
Priority between security or Load-test for an internal back-end services?
Prioritize your automation for real value and minimal maturity
“Automation applied to an inefficient operation will magnify the inefficiency.”
“Never perform a machine job by a human.”
e.g. Automate technical retry is a right priority
19
THANK YOU

More Related Content

Similar to How We Test Event-Driven Microservices (20)

PDF
Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...
Chris Richardson
 
PPTX
Microservices testing strategy-v2
rajni singh
 
PPTX
Modern Testing Strategies for Evolving Ecosystems
Julian Warszawski
 
PDF
Continuous Testing through Service Virtualization
TechWell
 
PDF
Test Strategies for Microservices with Christoph Ebeling
Cloud Study Network
 
PDF
Testing Microservices
Nathan Jones
 
PDF
Testing microservices
Anik Kale
 
PDF
No Devops Without Continuous Testing
Parasoft
 
PPTX
Context-Driven Performance Testing
Alexander Podelko
 
PDF
Web Services Testing Best Practices: Secure, Reliable, and Scalable APIs
Shubham Joshi
 
PDF
Service Virtualization: What Testers Need to Know
TechWell
 
PDF
Some practical considerations and a
ijseajournal
 
PPT
Netserv Software Testing
sthicks14
 
PDF
Serverless microservices: Test smarter, not harder
DiUS
 
PPTX
Test Automation Architecture in Microservices
Alper Mermer
 
PDF
Automated testing-whitepaper
imdurgesh
 
PDF
Cloud-based Test Microservices JavaOne 2014
Shelley Lambert
 
PDF
How would ESBs look like, if they were done today.
Markus Eisele
 
PDF
Micro service quality
Rafael Lima
 
PDF
Tests Your Pipeline Might Be Missing
Gene Gotimer
 
Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...
Chris Richardson
 
Microservices testing strategy-v2
rajni singh
 
Modern Testing Strategies for Evolving Ecosystems
Julian Warszawski
 
Continuous Testing through Service Virtualization
TechWell
 
Test Strategies for Microservices with Christoph Ebeling
Cloud Study Network
 
Testing Microservices
Nathan Jones
 
Testing microservices
Anik Kale
 
No Devops Without Continuous Testing
Parasoft
 
Context-Driven Performance Testing
Alexander Podelko
 
Web Services Testing Best Practices: Secure, Reliable, and Scalable APIs
Shubham Joshi
 
Service Virtualization: What Testers Need to Know
TechWell
 
Some practical considerations and a
ijseajournal
 
Netserv Software Testing
sthicks14
 
Serverless microservices: Test smarter, not harder
DiUS
 
Test Automation Architecture in Microservices
Alper Mermer
 
Automated testing-whitepaper
imdurgesh
 
Cloud-based Test Microservices JavaOne 2014
Shelley Lambert
 
How would ESBs look like, if they were done today.
Markus Eisele
 
Micro service quality
Rafael Lima
 
Tests Your Pipeline Might Be Missing
Gene Gotimer
 

More from Antoine Craske (13)

PDF
Quality at Speed: The Imperatives of Integration Tomorrow
Antoine Craske
 
PDF
Quality Engineering - par oú commencer?
Antoine Craske
 
PDF
Incidents - The Shorter, the Better with the Quality Engineering Discipline
Antoine Craske
 
PDF
Reinventing our QA roles for Quality Engineering
Antoine Craske
 
PDF
Pivoting to a Mobile-First Strategy @ La Redoute
Antoine Craske
 
PDF
The Value of Test Automation for Quality at Speed
Antoine Craske
 
PDF
How Open Source Is Shaping Quality Engineering
Antoine Craske
 
PDF
Build Better. Build Faster. - How to Transform DevOps for Quality at Speed
Antoine Craske
 
PDF
La Redoute DevOps Adoption, A Transformation Journey
Antoine Craske
 
PDF
Production-Ready Kubernetes: It's Not About Technology
Antoine Craske
 
PDF
La Redoute Quality Engineering Transformation
Antoine Craske
 
PDF
This is How We Accelerate with Quality Engineering - Codacy Webinar
Antoine Craske
 
PPTX
Shifting Quality To App-first @ La Redoute
Antoine Craske
 
Quality at Speed: The Imperatives of Integration Tomorrow
Antoine Craske
 
Quality Engineering - par oú commencer?
Antoine Craske
 
Incidents - The Shorter, the Better with the Quality Engineering Discipline
Antoine Craske
 
Reinventing our QA roles for Quality Engineering
Antoine Craske
 
Pivoting to a Mobile-First Strategy @ La Redoute
Antoine Craske
 
The Value of Test Automation for Quality at Speed
Antoine Craske
 
How Open Source Is Shaping Quality Engineering
Antoine Craske
 
Build Better. Build Faster. - How to Transform DevOps for Quality at Speed
Antoine Craske
 
La Redoute DevOps Adoption, A Transformation Journey
Antoine Craske
 
Production-Ready Kubernetes: It's Not About Technology
Antoine Craske
 
La Redoute Quality Engineering Transformation
Antoine Craske
 
This is How We Accelerate with Quality Engineering - Codacy Webinar
Antoine Craske
 
Shifting Quality To App-first @ La Redoute
Antoine Craske
 
Ad

Recently uploaded (20)

PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Python basic programing language for automation
DanialHabibi2
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
July Patch Tuesday
Ivanti
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Ad

How We Test Event-Driven Microservices

  • 1. Antoine Craske HOW WE DECIDED TO TEST EVENT-DRIVEN MICROSERVICES
  • 2. 2 We had to accelerate
  • 3. 3 A first strategic project came in Order Management Transport Management (external) Parcel Management Warehouse Management
  • 4. 4 Moving to event-driven microservices Order Management Transport Management (external) Parcel Management Warehouse Management Transport Management Parcel Management App App App App App App MS MS MS MS MS MS MS MS MS MS MS MS MS MS MS MS Order Management App App Warehouse Management App App App
  • 6. 6 Decoupling, Events, Decentralized Asynchronous event processing testing? Eventual consistency versus business transactions? Which test data management (TDM) strategies? Which test environment management (TEM) strategies?
  • 7. 7 We prioritized our test needs Functional for end-to-end Business & individual component Integration for availability and resiliency of the solution Unit for code architecture and modularity Load-testing to secure specific sales period (e.g. Black Friday) GUI testing as only used for configuration elements Exploratory testing to be performed along the project Security not that a concern as internal services not exposed Volume testing with forecasted throughput 1 2
  • 8. 8 Within real-life constraints • Scalable solution for 20-50 microservices • 4 weeks (e.g. 2 sprints) to have a working solution • CI/CD testing through existing environments (qa, uat, staging, prod) • Reduce the risk and test as early as possible • Tests to run fast with reliability and confidence
  • 9. 9 Functional Testing • End to end business process • Individual functions MS Order Mgmt MS … Order Mgmt MS MS … API CreateParcel GetParcel Main cases Edge cases Error cases
  • 10. 10 Functional Testing • End to end business process • Individual functions MS Order Mgmt MS … Order Mgmt MS MS … API Use Case 1 Use Case .. Use Case n Use Case 1 Use Case .. Use Case n Use Case 1 Use Case .. Use Case n Use Case 1 Use Case .. Use Case n Use Case 1 Use Case .. Use Case n
  • 11. Do we need integration test with functional and unit test? • For exceptional specific cases, maybe Do we need contract testing? • To verify the decoupled microservices can call Kafka? Does the project needs to test Kafka/K8S platform availability? • Is it no the job of SRE team? But how do we ensure error management and retries? • Are functional tests covering with edge cases? Integration Testing Availability and resiliency 11
  • 12. Unit Test Code architecture and modularity • Simple to write and maintain • Focused and no external dependencies • Reliable and repeatable • Self-checked and explanatory • Run fast (<100ms) 12 Components under test Mocks for components Source: mockframeworks.com
  • 13. 13 Load Testing Specific sales period (e.g. Black Friday) MS Order Mgmt MS … Order Mgmt MS MS … API Nominal Loaded …
  • 14. 14 Test Environment & Data GUI E2E (Full) E2E (Process) Component Integration Unit Load-Test Security, Volume, … dev staging qa uat staging prod qa uat staging prod uat staging prod N/A (Mock/Contract) Refresh from env Test Generated & Cleaned Refresh from env Refresh from env dev GUI E2E (Full) E2E (Process) Component Integration Unit Load-Test Security, Volume, … CI/CD Quality Gates Manual / Scheduled Manual / Scheduled CI / Manual in local Manual Launch
  • 15. 15 Not yet a Christmas tree ☺ GUI E2E (Full) E2E (Process) Component Integration Unit Load-Test Security, Volume, … irregular This solution is working fine and implemented fast by PO/Dev/QA teams, for up to 30-50 microservices GUI E2E (Full) E2E (Process) Component Integration Unit Load-Test Security, Volume, … dev staging qa uat staging prod qa uat staging prod uat staging prod N/A (Mock/Contract) Refresh from env Test Generated & Cleaned Refresh from env Refresh from env dev
  • 16. 16 Open source Test Stack GUI E2E (Full) E2E (Process) Component Integration Unit Load-Test Security, Volume, … irregular This solution is working fine and implemented fast by PO/Dev/QA teams, for up to 30-50 microservices GUI E2E (Full) E2E (Process) Component Integration Unit Load-Test Security, Volume, … dev staging qa uat staging prod qa uat staging prod uat staging prod N/A (Mock/Contract) Refresh from env Test Generated & Cleaned Refresh from env Refresh from env dev
  • 17. 17 Our evolution roadmap Secure design quality for reliability, performance and testability Spaghetti microservices, hard to develop, test and operate Ephemeral environments for reliability, scaling and lower costs On-demand test environments, refreshed, destroyed Systematic and automated load and performance test Enabling combination of load, stress and volume test
  • 18. 18 Takeaways Can’t we avoid testing in the first place? Good design, then common librairies, platform, retry logic, then project requirements Align test requirements on business, priorities and constraints Priority between security or Load-test for an internal back-end services? Prioritize your automation for real value and minimal maturity “Automation applied to an inefficient operation will magnify the inefficiency.” “Never perform a machine job by a human.” e.g. Automate technical retry is a right priority