Testing Metaphysics

[article]
Summary:
Metaphysics will help you investigate your purpose in life, separate the real from the imaginary, and argue about whether or not humans have free will. According to Rick Scott, it can also help you become a better software tester. As the foundation of philosophy, metaphysics deals with identifying the fundamental assumptions we make about the world and seeing how well they hold up to close scrutiny.

Ever have something go wrong because the fundamental assumption you based it on was flawed? Worse yet, did you not even realize you were making an assumption at the time? As the foundation of philosophy, metaphysics deals with identifying the fundamental assumptions we make about the world and seeing how well they hold up to close scrutiny. 

Metaphysics examines the fundamental nature of existence and of the universe. Admittedly, this is a rather broad topic. It includes a swath of areas we think of as the domain of the sciences today—the cosmos, the nature of space and time, the nature of matter—as well as more abstract ones like the nature of mind, perception, existence and reality, and free will. Though questions such as these may seem distant from our everyday concerns, metaphysics undergirds how we perceive and conceptualize the world, and so it has more to offer the test team than just fodder for a rousing Friday afternoon debate. 

Ontology

Ontology, a sub-field of metaphysics, sorts things into categories of existence. What things exist? What kinds of existence do they possess? At first blush, this seems like a pointless question to ask. Things either exist or do not. Airplanes exist; dragons don't. We tend to split things into "real" or "imaginary" depending on whether or not they have a physical presence. In fact, though, many things exist that aren't physical objects but instead inhere in other things, like properties ("red", "beautiful") or concepts (the number three, the idea of a right angle).

It's tempting to think of software only in terms of the concrete things we put into it—lines of code, features, and so forth. We less frequently think of it in terms of what properties it manifests. Is our software any good? Does it exhibit beauty, robustness, or ease of use? The feelings of a customer using a piece of software have little in the way of a physical manifestation, but they have a very real effect on that software's success.

Causality 

Probably one of the most mind-altering moments for a student of philosophy is reading David Hume's stunning indictment of cause and effect. He denied that we can perceive cause and effect. And, in fact, we can't. We only perceive two events that always seem to transpire together and begin to associate one with the other.

For instance, we may see one billiard ball striking a second, and then that second one moving off in a straight line, but we can't actually know with certainty that the first ball caused the movement of the second. Maybe there are magnets under the table that caused the second ball to move or some other explanation. The reason we know there's a cause-and-effect relation in play is because we've observed this series of events so many times that we've come to expect it.

The path we tread while testing software is not as well known as this. When we observe something happen to the software under test, it is often the first time we have seen it. If we are attaching files to a document and see an error when we attach the eighth one, we are tempted to believe that attaching eight files will cause that error. In fact, the problem may arise when the total size of the attached files exceeds a certain threshold or be caused by something else entirely. Thus, we do well to verify our theories before leaping to conclusions about what may have caused a particular result.

Other Areas of Metaphysics

There is much more to metaphysics—so much so that it's been accused of being

User Comments

2 comments
Paul Hepplestall's picture
Paul Hepplestall

a well put together article, especially interested in Ontology. Made me think in the current world do testers really exist or are they imaginary. I spend so much time talking to Software engineers who claim to be testers that it is difficult to reconcile.

Now I know its all metaphysics it at least makes me fell less like a grumpy old tester.

June 15, 2011 - 11:56am
Chris Trappe's picture
Chris Trappe

I never thought I'd see "metaphysics" and "testing" in the same sentance. :) But, it - like many other topics - points out the need for awareness of testing myopia.

Just a comment about "cause and effect"... when I was a new tester, I was intensely convinced that automation could cover all code paths, and as such we'd be solving the intensely manual "backwards-engineering" of how the product worked for testing purposes. I mean why test manually, when you can ask automation to travel down each code path.

...After a conversation with Cem Kaner, I got over that quickly...but not without wondering if it isn't going to be technically possible some day. (After we figure out how to fold space, I guess....)

Oh well, hope springs eternal, doesn't it?

June 13, 2011 - 12:52pm

About the author

Rick Scott's picture Rick Scott

Rick Scott is a Canadian philosopher-geek who's profoundly interested in how we can collaborate to make technology work better for everyone. He's an incorrigible idealist, an open source contributor, and a staunch believer in testing, universal access, and the hacker ethic. When he's not in front of a computer, you'll find him out on the hiking trails, in the kitchen turning out cupcakes, or cleaning up his viola technique in the basement.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Oct 12
Oct 15
Nov 09
Nov 09