Trace Driven Development: Unifying Testing and Observability

Trace Driven Development: Unifying Testing and Observability

Published Jan 9, 2019

This talk proposes a fundamentally new approach to tracing and monitoring: Trace Testing. We discuss testing against trace data rather than code, and how this technique opens the door to an entire suite of verification practices which are difficult to achieve with the current unit/integration test dichotomy. We show that Trace Tests can span across multiple network calls, languages, and services, while still retaining unit-test-like ability to observe fine grained internal behavior. This combination is particularly useful in mircoservice and serverless environments. In addition, Trace Testing ensure that behavior which is important enough to test in development is also observable in production. We also propose that formal proof logic – which can catch new classes of bugs and help with live debugging – is not nearly as complicated once you have distributed tracing.

Go to website