Automatic Testing for Services at Scale
summary
Built an integration testing framework that instantiates production-like fragments per run, renames identifiers for namespacing identifiers, and offers policies for external connections: replace with mocks, use in-memory services, allow, or block external connections by default. Tests use a harness that sends requests, injects faults, and asserts crashes or incorrect behavior. Fuzzing becomes integration-first fuzzing by enumerating service APIs via reflection, auto-generating typed inputs, seeding with sanitized production traffic, finding >1000 bugs but currently running for about a third of services due to isolation limits.
AI-written summary · about
chapters (10)
- 0:00Testing services matters
- 2:33Facebook service infrastructure
- 5:42Service integration challenges
- 6:43Building integration testing
- 9:54Writing test harness for services
- 11:23Automating testing with fuzzing
- 14:52Integration-first fuzz testing
- 16:22Fuzzing with production requests
- 17:07Results and impact of fuzzing
- 18:15Future improvements
related talks
51mAutomatic testing of a heavily integrated system - a case-study
01h 20mIntegration Testing from the Trenches
45mBuilding a successful test automation architecture in a microservices environment
44mTesting: Integration Tests - The good, bad and ugly
02h 36mTesting Java Microservice
45mTesting in a Service-Based Environment, Staged Acceptance
54mTest Automation. Worst Practices
58mIntegration Testing from the Trenches
