Overview
Syllabus
Intro
Microservices Architecture
Microservice Architecture: Netflix
Microservices: Socio-Technical Problem
Challenge #1: Code Quality
Challenge #2: Distributed Systems
Microservice Fault Tolerance
Fault Tolerance: Example
What should happen?
What actually happens?
How Can We Do Better?
Motivating Example
Incident #1: Bad Deployment
Incident #2: 3rd Party Dependency Failure
Verifying The (Missing) Test Oracle
Service-level Fault Injection Testing
Test Adaptation: Failure-Driven Resilience
Fault Permutations: What Do We Test?
Dynamic Reduction Technique
Evaluation
Integrating the Approach
Automatic Instrumentation
JUnit Integration: Example
JUnit Integration: Faults
JUnit Integration: Conditional Assertions
Standalone Filibuster
Conclusion
Taught by
Strange Loop Conference