Microservices are becoming more prevalent. External behavior of an application depends on multiple services working together. Each service needs to be checked that it both provides the desired behavior as well as handles exceptions and error conditions, such as the inability to communicate with a dependency. Interactions between these services needs to be checked and monitored. Checking behavior does not stop at deployment but needs to continue after release.
From a testing perspective, microservices can be viewed both as mini-applications with external behavior and as internal components. For applications, the externally facing triad (tester, developer, and customer) collaborates to create tests for behavior; for internal components, a different triad (tester, consumer, producer) generates these tests. To properly test microservices, we need to see, feel, touch, heal, and explore them.
See it: Tests need to be visible so that all members of the triad share the understanding of the behavior.
Feel It: Behavior for cross-functional (non-functional) aspects of microservices can be documented in tests.
Touch It: Testing for interactions of microservices can include injection or simulation of faults.
Heal It: Check that telemetry which records microservice interactions can be used to determine failure causes.
Explore It: Testing ought to go beyond just the behaviors described.
With so many aspects, testers need to work as collaborators in specification and tests, not just the test executors. The primary audience for this interactive workshop is for testers involved in microservices. However, it is also appropriate for any role which collaborates on the construction or delivery of these microservices. The session includes both lecture and a set of exercises on specifying and testing microservices.