Oracle (software testing)

Oracle (software testing)

An oracle is a mechanism used by software testers and software engineers for determining whether a test has passed or failed.[1] It is used by comparing the output(s) of the system under test, for a given test case input, to the outputs that the oracle determines that product should have. The term was first used and defined in Howden's Introduction to the Theory of Testing. [2] . Additional work on different kinds of oracles was explored by Weyuker. [3]. Oracles are often separate from the system under test.[4]. Method postconditions are commonly used as automated oracles in automated class testing.[5]

Common oracles include:

  • specifications and documentation,[6]
  • 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)
  • an heuristic oracle that provides approximate results or exact results for a set of a few test inputs,[7]
  • a statistical oracle that uses statistical characteristics,[8]
  • a consistency oracle that compares the results of one test execution to another for similarity,[9]
  • a model-based oracle that uses the same model to generate and verify system behavior,[citation needed]
  • or a human being's judgment (i.e. does the program "seem" to the user to do the correct thing?).[4]

References

  1. ^ A Course in Black Box Software Testing, Cem Kaner 2004
  2. ^ Edward Miller and William E. Howden, "Software Testing and Validation Techniques", pp. 16-19, IEEE, 1978
  3. ^ "The oracle assumption of program testing", 13th ICSS, pp. 44-49, Honolulu, 1980
  4. ^ a b An Integrated Approach to Software Engineering, Pankaj Jalote 2005, ISBN 038720881X
  5. ^ Bertrand Meyer, et al, "Programs that Test Themselves", IEEE Computer, 42-9, pp 46-55, Sept. 2009
  6. ^ "Generating a test oracle from program documentation", Peters and Parnas, 1994 in Proceedings of the 1994 International Symposium on Software Testing and Analysis
  7. ^ Heuristic Test Oracles, Douglas Hoffman, Software Testing & Quality Engineering Magazine, 1999
  8. ^ Test Oracles Using Statistical Methods, Johannes Mayer and Ralph Guderlei
  9. ^ Analysis of a Taxonomy for Test Oracles, Douglas Hoffman, Quality Week, 1998

Bibliography

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

Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Software testing controversies — Software Testing portal There is considerable variety among software testing writers and consultants about what constitutes responsible software testing. Members of the context driven school of testing[1] believe that …   Wikipedia

  • Oracle (disambiguation) — An oracle In Greek and Roman polytheism was an agency or medium, usually a priest or a priestess, through which the gods were supposed to speak or prophesy. In generalized usage, an oracle can also be: divine revelation in Christianity Urim and… …   Wikipedia

  • Oracle Database — Developer(s) Oracle Corporation Development status Active Written in …   Wikipedia

  • Oracle Data Mining — (ODM) is an option of Oracle Corporation s Relational Database Management System (RDBMS) Enterprise Edition (EE). It contains several data mining and data analysis algorithms for classification, prediction, regression, classification,… …   Wikipedia

  • Oracle Unified Method — The Oracle Unified Method (OUM), first released by Oracle Corporation in 2006, is a standards based method with roots in the Unified Process (UP). OUM is business process and use case driven and includes support for the Unified Modeling Language… …   Wikipedia

  • Computer software — Software redirects here. For other uses, see Software (disambiguation). Computer software, or just software, is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it.… …   Wikipedia

  • Software house — A software house is a company whose primary products are composed of software, i.e., computer programs. Types of software houses There are a number of different types of software houses: *Large and well known companies such as Microsoft, Oracle… …   Wikipedia

  • Model-based testing — is the application of Model based design for designing and optionally executing the necessary artifacts to perform software testing. Models can be used to represent the desired behavior of the System Under Test (SUT), or to represent the desired… …   Wikipedia

  • Compatibility testing — Software Testing portal Compatibility testing, part of software non functional tests, is testing conducted on the application to evaluate the application s compatibility with the computing environment. Computing environment may contain some or… …   Wikipedia

  • Mirth (software) — Mirth is an open source cross platform HL7 interface engine that enables bi directional sending of HL7 messages between systems and applications over multiple transports available under the Mozilla Public License (MPL) 1.1 license. Contents 1… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”