The biggest pain as a developer in a big development team when building a system consisting of tens of services over Microservices architecture, is pushing code to the code base without breaking anything. Testing is the key to solving this pain. Or, in other words, establishing a healthy CI-CD process that surfaces defects before they get to the client. In this talk, we’ll explore different testing approaches that will help us deliver code that works and doesn’t break older functionality. We will talk about different testing approaches at the service level – Unit testing vs API testing. We will talk about the importance of integration testing and also about what we can do in order to minimise the risk of deploying a new piece of code and what can we do after we deployed to production using Canary Testing, Synthetic User, Testing, and more.