DEV Community

Jonathan Hall
Jonathan Hall

Posted on • Originally published at jhall.io on

How can we trust automated tests in life-or-death scenarios?

One of the more frequent arguments I hear against automated testing, and by extension, continuous delivery, is the idea that some problems are too important to trust to automated tests. Someone might die if a bug gets through. Or maybe billions of dollars would be lost.

Common examples are things like: firmware for pacemakers, self-driving cars, and Mars landers.

I guess this question seems reasonable on the face of it, because it comes up all the time.

But hidden within this question is the erroneous assumption that manual testing is more reliable than automated testing.

What makes it worse is that the assumption isn’t always wrong. The problem lies in the fuzzy definition of “testing.” Some kinds of testing definitely do require an actual mind, which can reason about things, apply intuition, etc.

But that’s not the kind of testing we’re talking about when we discuss automated tests, or continuous delivery, is it? We’re talking about rote regression testing. “Run through these 10,000 scenarios, and make sure none of them behave in unexpected ways.”

This is exactly the sort of testing that humans are notoriously bad at doing. And not only because they’re dreadfully slow, but also because they easily make mistakes. They also tend to get bored, and the better ones require salary increases every now and again.

Would you rather hop behind the… eh, wheel(?) of an autonomous vehicle that had the last software update tested automatically, by a computer that can examine 10,000 corner cases per second, or by a human sitting in the, er… driver’s(?) seat, trying to trigger unusual scenarios to ensure that the car behaves correctly?

When you stop to think about it, this common question “How can we trust automated tests in high-stakes scenarios?” is exactly backwards.

How can we possibly trust manual tests in high-stakes scenarios?


If you enjoyed this message, subscribe to The Daily Commit to get future messages to your inbox.

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay