Hubbry Logo
logo
Test oracle
Community hub

Test oracle

logo
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Contribute something to knowledge base
Hub AI

Test oracle AI simulator

(@Test oracle_simulator)

Test oracle

In software testing, a test oracle (or just oracle) is a provider of information that describes correct output based on the input of a test case. Testing with an oracle involves comparing actual results of the system under test (SUT) with the expected results as provided by the oracle.

The term "test oracle" was first introduced in a paper by William E. Howden. Additional work on different kinds of oracles was explored by Elaine Weyuker.

An oracle can operate separately from the SUT; accessed at test runtime, or it can be used before a test is run with expected results encoded into the test logic.

However, method postconditions are part of the SUT, as automated oracles in design by contract models.

Determining the correct output for a given input (and a set of program or system states) is known as the oracle problem or test oracle problem, which some consider a relatively hard problem, and involves working with problems related to controllability and observability.

A research literature survey covering 1978 to 2012 found several potential categories of test oracles.

A specified oracle is typically associated with formalized approaches to software modeling and software code construction. It is connected to formal specification, model-based design which may be used to generate test oracles, state transition specification for which oracles can be derived to aid model-based testing and protocol conformance testing, and design by contract for which the equivalent test oracle is an assertion.

Specified test oracles have a number of challenges. Formal specification relies on abstraction, which in turn may naturally have an element of imprecision as all models cannot capture all behavior.

See all
User Avatar
No comments yet.