Tests
Isolated testing: Each service is tested on its own, with unit tests using doubles or component tests using doubles or in-memory storage
Integrated testing: Services are tested considering the communication paths and interaction between components, including their contracts
Consumer-driven Contract testing: Services are continuously tested against the contract provided by their consumers, ensuring they work as expected by external clients
Cross functional testing: Traits like response time, availability, load, security are tested across all services ensuring the cross functional requirements are met
Production monitoring through tests: Tests are continuously made in production to find bottlenecks and fix issues before customer even sees them, making the system antifragile.
Useful Resources
Testing Strategies in a Microservices Architecture
Description: This presentation describes a very thorough testing strategy for microservices, explaining the techniques, how to use them and their benefits.
Consumer-Driven Contracts: A Service Evolution Pattern
Description: This is a very detailed article talking about the problem Consumer-Driver Contracts try to solve and how to us it.
Pact
Description: This is a tool for Consumer-driven Contracts with implementation in many languages (Ruby, Java, Go and many others).