Multi-dimensional Test pyramid for microservices

Test pyramid gives an idea of how many tests we should have in each of these groups. Given the special characteristics of microservices, how did we apply this concept to testing and improve quality?

A microservices architecture involves many moving parts with different guarantees and failure modes. Testing and verification of these systems are significantly more nuanced and complex than testing a traditional monolithic application. An effective test strategy needs to account for both testing individual services in isolation and the verification of overall system behavior.

6 years ago, we started our microservices journey involving more than 100 developers with absolutely no idea about how we could test and ensure the quality of the services. After some years of trial and error, now we find a test strategy to move forward. It is not perfect, but it works!

With our approach, frontend and backend strategy go hand-in-hand: the backend mircoservices are integrated as early as possible to reduce the big integration effort at the end. For the frontend, we focus on the stability of the automated UI tests and early integration with backend services. Each team has weekly deployment to live independently with very minimum amount of e2e tests, how can we achieve this?

In this session, I would like to share with you our journey towards a multi-dimensional test pyramid for microservices, how we handle test data and some lessons learnt.