Black box software testing: A course by Cem Kaner & James Bach

Domain Testing

Domain testing is the most frequently described test technique. Some authors write only about domain testing when they write about test design. The basic notion is that you take the huge space of possible tests of an individual variable and subdivide it into subsets that are (in some way) equivalent. Then you test a representative from each subset.

More advanced problems involve combination tests--having done the analysis for several variables, we now test the variables together, using the representative values as if they were the only values of interest. Thus a variable that has a million possible values is reduced to 4 by the traditional domain testing approach (2 valid, 2 invalid). The number of "possible" tests of 3 variables combined would be 4 x 4 x 4 instead of some gargantuan number.

Unfortunately, the classical domain testing approach is a bit too simplistic. Glen Myers showed a more complex variation in his book, The Art of Software Testing (1979), as did Kaner, Falk & Nguyen in Testing Computer Software (1988, 1993). These authors described what was common in practice, rather than in the more theoretical discussions. Those discussions lead to an overly mechanical view of the thinking and practice of domain testing. These two lectures describes a risk-based approach to domain testing, and puts it in the context of three other dominant explanatory structures for the practice of domain testing.


We are setting up a mailing list for announcements about this course and, perhaps, a tightly focused and moderated discussion of how to teach it or self-study with it. (This won't be a general, high-traffic, intro-to-testing discussion.) If you're interested in the course, please sign up by sending us an email. We will NOT share your email address with third parties or send commercial advertising to you.

We are publishing this course under a Creative Commons license that allows you to freely reuse and distribute the materials and to modify the slides and associated printable materials (but not the videos). We would be appreciate a few mirror sites, to reduce the growing burden on our servers. If you can help in this way, or any other way, please send a note to Cem Kaner.