Oracle (software testing)

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Lua error in package.lua at line 80: module 'strict' not found.

In computing, software testers and software engineers can use an oracle as a mechanism for determining whether a test has passed or failed.[1] The use of oracles involves comparing the output(s) of the system under test, for a given test-case input, to the output(s) that the oracle determines that product should have. William E. Howden first defined and used the term in this sense in his article "Introduction to the Theory of Testing".[2] Additional work on different kinds of oracles was explored by Elaine Weyuker.[3]

Oracles often operate separately from the system under test.[4] Method postconditions are commonly used as automated oracles in automated class testing.[5] The oracle problem is often much harder than it seems, and involves solving problems related to controllability and observability.[6]

Common oracles include:

  • specifications and documentation[7][8]
  • 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 approximate results or exact results for a set of a few test inputs[9]
  • a statistical oracle that uses statistical characteristics[10]
  • a consistency oracle that compares the results of one test execution to another for similarity[11]
  • a model-based oracle that uses the same model to generate and verify system behavior[12]
  • a human oracle (i.e. the correctness of the system under test is determined by manual analysis)[6]

References

<templatestyles src="Reflist/styles.css" />

Cite error: Invalid <references> tag; parameter "group" is allowed only.

Use <references />, or <references group="..." />

Bibliography

  • Binder, Robert V. (1999). "Chapter 18 - Oracles" in Testing Object-Oriented Systems: Models, Patterns, and Tools, Addison-Wesley Professional, 7 November 1999, ISBN 978-0-201-80938-1