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

Tce automation-d4
Tce automation-d4Tce automation-d4
Tce automation-d4
Tikal Knowledge
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
Nathan Jones
 
Service Virtualization: Delivering Complex Test Environments on Demand
Service Virtualization: Delivering Complex Test Environments on DemandService Virtualization: Delivering Complex Test Environments on Demand
Service Virtualization: Delivering Complex Test Environments on Demand
Erika Barron
 
Visual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewVisual Studio 2010 Testing Overview
Visual Studio 2010 Testing Overview
Steve Lange
 
Bangalore based Test automation and Testing service Company - Oak Systems Pvt...
Bangalore based Test automation and Testing service Company - Oak Systems Pvt...Bangalore based Test automation and Testing service Company - Oak Systems Pvt...
Bangalore based Test automation and Testing service Company - Oak Systems Pvt...
OAK Systems Pvt Ltd
 
Resume
ResumeResume
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
AppDynamics
 
DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?
Michael Elder
 
Meenakshi Pal_16
Meenakshi Pal_16Meenakshi Pal_16
Meenakshi Pal_16
Meenakshi Pal
 
Building functional Quality Gates with ReportPortal
Building functional Quality Gates with ReportPortalBuilding functional Quality Gates with ReportPortal
Building functional Quality Gates with ReportPortal
Dmitriy Gumeniuk
 
Case Reference - Database Testing: Success Story
Case Reference - Database Testing: Success StoryCase Reference - Database Testing: Success Story
Case Reference - Database Testing: Success Story
Indium Software
 
Resume
ResumeResume
Neotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga MoorthyNeotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys_Partner
 
Software testing: an introduction - 2017
Software testing: an introduction - 2017Software testing: an introduction - 2017
Software testing: an introduction - 2017
XavierDevroey
 
Testing in the cloud
Testing in the cloudTesting in the cloud
Testing in the cloud
MCARaghu
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
cPrime | Project Management | Agile | Consulting | Staffing | Training
 
National software testing conference 2016 fergal hynes
National software testing conference 2016 fergal hynesNational software testing conference 2016 fergal hynes
National software testing conference 2016 fergal hynes
Fergal Hynes
 
jaynewresume6
jaynewresume6jaynewresume6
jaynewresume6
Jayanthi Sureshkumar
 
SourceWarp AST 2023.pdf
SourceWarp AST 2023.pdfSourceWarp AST 2023.pdf
SourceWarp AST 2023.pdf
Julian Thome
 
Gredy - test automation management and team collaboration
Gredy - test automation management and team collaborationGredy - test automation management and team collaboration
Gredy - test automation management and team collaboration
Gredy
 

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

Tce automation-d4
Tce automation-d4Tce automation-d4
Tce automation-d4
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
 
Service Virtualization: Delivering Complex Test Environments on Demand
Service Virtualization: Delivering Complex Test Environments on DemandService Virtualization: Delivering Complex Test Environments on Demand
Service Virtualization: Delivering Complex Test Environments on Demand
 
Visual Studio 2010 Testing Overview
Visual Studio 2010 Testing OverviewVisual Studio 2010 Testing Overview
Visual Studio 2010 Testing Overview
 
Bangalore based Test automation and Testing service Company - Oak Systems Pvt...
Bangalore based Test automation and Testing service Company - Oak Systems Pvt...Bangalore based Test automation and Testing service Company - Oak Systems Pvt...
Bangalore based Test automation and Testing service Company - Oak Systems Pvt...
 
Resume
ResumeResume
Resume
 
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
How CapitalOne Transformed DevTest or Continuous Delivery - AppSphere16
 
DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?
 
Meenakshi Pal_16
Meenakshi Pal_16Meenakshi Pal_16
Meenakshi Pal_16
 
Building functional Quality Gates with ReportPortal
Building functional Quality Gates with ReportPortalBuilding functional Quality Gates with ReportPortal
Building functional Quality Gates with ReportPortal
 
Case Reference - Database Testing: Success Story
Case Reference - Database Testing: Success StoryCase Reference - Database Testing: Success Story
Case Reference - Database Testing: Success Story
 
Resume
ResumeResume
Resume
 
Neotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga MoorthyNeotys PAC 2018 - Ramya Ramalinga Moorthy
Neotys PAC 2018 - Ramya Ramalinga Moorthy
 
Software testing: an introduction - 2017
Software testing: an introduction - 2017Software testing: an introduction - 2017
Software testing: an introduction - 2017
 
Testing in the cloud
Testing in the cloudTesting in the cloud
Testing in the cloud
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
National software testing conference 2016 fergal hynes
National software testing conference 2016 fergal hynesNational software testing conference 2016 fergal hynes
National software testing conference 2016 fergal hynes
 
jaynewresume6
jaynewresume6jaynewresume6
jaynewresume6
 
SourceWarp AST 2023.pdf
SourceWarp AST 2023.pdfSourceWarp AST 2023.pdf
SourceWarp AST 2023.pdf
 
Gredy - test automation management and team collaboration
Gredy - test automation management and team collaborationGredy - test automation management and team collaboration
Gredy - test automation management and team collaboration
 

More from Antoine Craske

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

More from Antoine Craske (13)

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

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 

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