Jump to content

Test oracle

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mchua~enwiki (talk | contribs) at 18:53, 11 November 2008 (Beginning a stub page for this article with some (poorly formatted) citations.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

An oracle is a mechanism used by software engineers for determining whether that product has passed or failed a test. [1] It is used by comparing the output(s) of a product for a given test case input to the outputs that the oracle determines that product should have. Oracles are always separate from the product under test.[2]

Common oracles include specifications and documentation [3], other products (for instance, an oracle for a software program might be a second program that uses a different algorithm to evaluate the same mathematical expression as the product under test), a heuristic oracle that provides exact results for a set of a few test inputs[4], or a human being's judgment (i.e. does the program "seem" to the user to do the correct thing)? [5]

  1. ^ A Course in Black Box Software Testing, Cem Kaner 2004
  2. ^ An Integrated Approach to Software Engineering, Pankaj Jalote 2005, ISBN 038720881X
  3. ^ "Generating a test oracle from program documentation", Peters and Parnas, 1994 in Proceedings of the 1994 International Symposium on Software Testing and Analysis
  4. ^ Heuristic Test Oracles, Douglas Hoffman, Software Testing & Quality Engineering Magazine, 1999
  5. ^ An Integrated Approach to Software Engineering, Pankaj Jalote 2005, ISBN 038720881X