# Cindy Sridharan - Testing Microservices, the Sane Way (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png) ## Metadata **Cover**:: https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png **Source**:: #from/readwise **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[Cindy Sridharan]] **Full Title**:: Testing Microservices, the Sane Way **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **URL**:: [copyconstruct.medium.com](https://copyconstruct.medium.com/testing-microservices-the-sane-way-9bb31d158c16) **Host**:: [[copyconstruct.medium.com]] **Highlighted**:: [[2021-01-30]] **Created**:: [[2022-09-26]] ## Highlights - asking to boot a cloud on a dev machine is equivalent to becoming multi-substrate, supporting more than one cloud provider, but one of them is the worst you’ve ever seen (a single laptop) - I’ve [previously written](https://medium.com/@copyconstruct/monitoring-in-the-time-of-cloud-native-c87c7a5bfa3e) in great detail about “post-production testing” from primarily an Observability standpoint. - [Charity Majors](https://twitter.com/mipsytipsy) gave [a talk at Strangeloop](https://www.youtube.com/watch?v=1wjovFSCGhE) this year, where she spoke about how the difference between Observability and “monitoring” really boils down to the known-unknowns and the unknown-unknowns. - The book [**Lessons Learned in Software Testing**](https://www.amazon.com/Lessons-Learned-Software-Testing-Context-Driven/dp/0471081124) has a piece of really good advice in the chapter *Thinking like a Tester*, which states: **To test, you must explore.** - The writing and running of tests is not a goal in and of itself — EVER - In the past, I’ve gone on to state that: integration tests only yield full value when the feedback is *fast*. Good (and *fast*) integration testing (both local and remote) as well as good instrumentation often serve better than striving to achieve 100% unit test coverage. - Yet another drawback of integration tests for complex systems is that it then demands maintaining separate environments for development, test, and/or staging. - The Step Up Rule - test at one layer above what’s generally advocated for. - Unit tests look more like integration tests - Integration testing looks more like testing in production - If you’re an Erlangista, you’re probably familiar with Fred Hébert’s [manual](http://erlang-in-anger.com/) on using the Erlang VM’s primitives to debug production systems while they are running. - Monitoring is a form of post-production testing - If the tests require 100% health to operate, you know you’ve got a problem.