Science Fiction and Fantasy

Published in volume 18, issue 3, September 2008

This issue contains two papers. The first, IPOG/IPOG-D: Efficient test generation for multi-way combinatorial testing, by Lei, Kacker, Kuhn, Okun and Lawrence, presents two new strategies for t-way combinatorial testing. The strategies have been implemented in a tool, FireEye, which is available on the first author's website. Software engineering researchers have always developed tools, but most tools have not easily been available to other researchers. This positive trend has the ability to multiply the impact of our research. The second, Reconciling perspectives of software logic testing, by Kaminski, Williams and Ammann, describes a rather large family of test criteria based on covering logical expressions. Logical expressions are essential to software at all levels—requirements, specifications, design, and implementation. These logic test criteria attempt to cover logical expressions in various ways. The paper presents existing logic expressions in a uniform way, relates them by various criteria, and presents a new test criterion. Although both papers contain substantial theory, they both provide new knowledge on testing techniques that are used in industry. Thus they are the kinds of papers that STVR is looking for ...

I grew up with a writer of science fiction and fantasy. From my perspective, science fiction books postulated new advances in science or engineering and explored their affects on human society, whereas fantasy books postulated a universe where the rules are slightly different. I enjoyed fantasy but my real love was SF, and I voraciously read all the books in the house. This early exposure to SF fueled my interest in being a scientist.

I initially wanted a career in physics, but like thousands of students before me, Electricity and Magnetism convinced me that my future would be much brighter with an advanced degree in computing.

I went to grad school with the intent of building programs that could think: self-aware with high order cognitive abilities. Like hundreds before me, my first AI class disabused me of this notion. Disenchanted, I turned to the myriad of accidental problems in software development, which soon led me into my primary research area of testing. Along the way I learned more about the difference between SF and science.

Both groups attempt to summon the future with their own ideas. One difference is that SF often assumes sudden, large-scale changes in science or technology. We love to imagine the lone scientist who uses lightning and dead body parts to summon life, the tinkerer who builds a spaceship out of bicycle parts and broken lawnmowers, the bookworm who builds a time machine in her study, or the engineer who creates a faster than light engine on a mountaintop. Unfortunately, scientists have to contend with the reality of taking very small, incremental steps, that over decades lead to amazing technologies like satellites, cell phones, the web, and the Wii. Most of us eventually become accustomed, or at least resigned, to this slow road to the future.

As a child I enjoyed reading fantasy novels about people who can perform magic, or heroes who have supernatural abilities to hit every target, fly, or swing on webs. But as an adult, I believe that scientists have a responsibility. Society provides us with resources—offices, students, computers, labs, salaries—with the expectation that some of us will contribute in some small way to summoning a (hopefully better) future. If we are motivated by the big steps that SF writers imagine, that helps us take our baby steps. But if we continually imagine the magic of fantasy, how can we help summon a better future? How can we return society's investment?

Software engineering researchers must keep reality in mind. Not all research will work—some ideas seem good at first but simply don't work or don't scale; other researchers have better ideas, and sometimes problems simply change. But our research must at least have a potential path to eventually help practicing software engineers build better software. If there is no path to eventual adoption by industry, then we are writing fantasy, not science fiction.

Or as my colleague, Richard Carver, succinctly said:
"It would be easier to write papers on testing if you didn't have to contemplate actually using the stuff you are writing about."

Jeff Offutt
1 August 2008