Testing on Production, deep backend edition

30-minute New Voice Talk

Production is a first-class testing environment

Timetable

10:25 a.m. – 10:55 a.m. Thursday 7th

Room

Room F1 - Track 1: Talks

Audience

Tester, Developer, Product Owner

Key-Learning

  • Live systems behavior tends to be difficult to predict before deploying a significant change to production
  • Pre-Production environments are better suited for verifying expected behavior, not for discovering unknown unknowns
  • Testing on production requires certain level of observability, resilience and recoverability which can be a valuable side-effect of this practice.

Why do we test on production? Why not avoid this risk at any cost?

Thorough testing before merging to master is great, but it doesn’t cover the unknowns. Staging on shared environments tends to be slow, unreliable and costly to support. Why not just learn from the only true environment by conducting safe and efficient experiments?

This talk is based on my experience of “shifting to the right” testing within the context of back-end systems of bol.com (one of the biggest online retailers of the Netherlands; logistics and purchasing domains), where correctness is often a bigger concern than performance, and recovery might require a bit more than users hitting the refresh button of their browser.

Testing on production is often associated with A/B testing or canary releases, but those aren’t always the best – or even applicable – techniques. We will look instead at shadow and dry runs, controlled experiments, survival of the fittest; how to apply these techniques and what to be aware of.

Related Sessions

9:00 a.m. – 5:00 p.m.

Full-Day Tutorial (6 hours)

10:25 a.m. – 10:55 a.m.
Room F1 - Track 1: Talks

30-min New Voice Talk

11:55 a.m. – 12:25 p.m.
Room F1 - Track 1: Talks

30-min New Voice Talk

3:10 p.m. – 3:40 p.m.
Room F2 - Track 2: Talks

30-minute Talk