A Course in Black Box Software Testing
Examples of Domain Testing
Copyright (c) Cem Kaner, 2004
The essence of domain testing is stratified sampling of a few tests from a huge pool of potential tests.
In domain testing, we partition a domain into sub-domains (equivalence classes) and then test using values from each subdomain.
A domain might involve the values of any one variable or combination of variables. Some books look only at input values, but outputs, intermediate calculations, even configuration variables (such as printer type) are commonly analyzed in practical work in the field.
We define an equivalence class as follows: two values are equivalent if, given your theory of possible error, you expect the same test result from each.
The values that we pick to represent each equivalence class are the most powerful members of each set, the best representatives. A best representative is at least as likely to expose an error as any other member of its set.
We often organize the domain analysis in a tabular format. Glen Myers, The Art of Software Testing, describes the classic format. I prefer this one instead. We'll see it used in the examples that follow.
|Variable||Risk (Potential Failure)||Classes that Should Not Trigger the Failure||Classes that Might Trigger the Failure||Test (Best Representative)||Notes|
The following examples illustrate the application of this style of analysis.
- Exploiting Canvas Size Options in Paint
- Some Aspect Ratios Cause DivX Player to Crash
- Selecting Invalid Games in Freecell
- Adding Formulas to Notes in Math
- Checking for the 11st Number
- Bookmark Update Scheduling Accepts Any Input
- WinAmp ID3 HTML Bug
- WinRAR's File Name Length Bug
Copyright (c) Cem Kaner 2004
This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
These notes are partially based on research that was supported by NSF Grant EIA-0113539 ITR/SY+PE: "Improving the Education of Software Testers." Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.