What high enery physics taught me about testing

TLDR

One of my passions is to learn about space. In this post I will explain what I learn from astronomers and high-energy physicists about software testing.

I got interested about space by reading Carl Sagan: Cosmos. For me it was great introduction to space. Lately, I am reading Dr.Sc. Dario Hrupec columns in Bug magazine. Dario brings us latest discoveries and developments from astronomy and high energy physics. What I like about his columns is that he explains theory failures and why those failures are actually very valuable discoveries.

"A heuristic is a fallible method for solving a problem or making a decision." [Bach, Bolton].

In my conversation with other fellow testers, that fallible part of that definition always have troubled us, as something that will not bring value to our testing activities. But with failures, we also learn a lot about product under test. High energy physics is one proof for that. So failure is also very valuable tool in science and software testing.

On hacker news,  I found about book "The Cuckoo's Egg" [Wikipedia]:  tracking a Spy Through the Maze of Computer Espionage. If you are interested in computer hacking, this is great book for start. Author is high energy physicists who uses ideas from that science to catch the Russian computer
hacker.

"Roy Keith had shown me the high-energy particle detectors attached to the Bevatron: they find jillions of subatomic interactions, and 99.99 percent are explainable by the laws of physics. Spending your time exploring each particle trail will lead you to conclude that all the particles obey known physics, and there's nothing left to discover. Alternatively, you could throw away all the explainable interactions, and only worry about those that don't quite satisfy the canonical rules.
Astronomers, distant cousins of high-energy physicists, work along similar lines. Most stars are boring. Advances come from studying the weirdies—the quasars, the pulsars, the gravitational lenses—that don't seem to fit into the models that you've grown up with. Knowing cratering statistics on the planet Mercury tells you how often the planet was bombarded in the early solar system. But study the few craters intersected by scarps and ridges and you'll learn how the planet shrank as it cooled during its first billion years. Collect raw data and throw away the expected. What remains challenges your theories."

Here is excerpt from the book that explains how astronomers found out about important facts in planets history.

"You saw that guy typing in the ps -eafg command, right?"
"Dave smiled. "So that leaves us with the f flag. And it's not in any Berkeley Unix. It's the AT&T Unix way to list each process's files. Berkeley Unix does this automatically, and doesn't need the f flag. Our friend doesn't know Berkeley Unix. He's from the school of old-fashioned Unix."

In this book excerpt hacker revealed his activity by using ps obscured f flag that is used by default in newer version of Unix.

In software testing we often found important bug by investigating and analysing patterns or events that asserts in some way.

Labels: