TESTING
SOFTWARE QA
RESOURCES
Notes taken from Boris Beizer books:

Some natural applications include:

  • The parts of specifications given directly in terms of numerical inequalities
  • Heavy numerical processing with lots of conditional logic: tax forms, payroll processing, financial calculations, most things you do with a spreadsheet.
  • Numerical inputs and heavy input validation and categorization, even if the subsequent processing isn't intensively numerical.
  • Don't restrict your notion and application of domain testing to software.
  • Bug assumptions:

  • Domain specification bugs: Ambiguous domains - the specification of the input space is incomplete; contradictory domains - domains overlap, especially at boundaries with closure to both sides; over specified domains - too many inequalities conspire to define a domain out of existence; degenerate domains where not intended.
  • Domain boundary bugs: These bugs include, in a typical order of likelihood and importance: wrong closure, shift, tilt, missing boundary, extra boundary
  • Domain processing bugs: Here domains appear to be correctly specified but the processing function is wrong for the domain. Wrong function chosen is likelier than an error in the implementation of the function.
  • Domain vertex bugs: These are expressed only at the vertex points of specified domains, especially if there's a lot of ad-hoc logic.
  • Limitations and Caveats:

  • Loops: It's assumed that there are no loops in the domain selection processing. Loops within the domain processing are okay as long as you can guarantee that once in a given domain, the processing will never cause the program to leave that domain.
  • Coincidental correctness: a problem for all test techniques. The likeliest situation is coincidental correctness with respect to input domains. That is, because of coincidental correctness, bad inputs are rejected for the wrong reasons.
  • Blindness limits and epsilon: Domain testing is blind to errors of less than your chosen epsilon. You may not be able to pick a single value for all your testing. Your processing might push the limits of small numbers in your system and an appropriate epsilon can cause underflow.
  • Difficulty with OFF point selection for closed domains: For domains that have boundaries with input rejection domains, the OFF point may tell you nothing because the input validation occurs before domain selection.