TL;DR
This post gives definition of oracle, a mechanism that could help the software tester whether a program has passed or failed a test. The answer is aligned with Black Box Software Testing Foundations course (BBST) created by Rebecca Fiedler, Cem Kaner and James Bach.
Definitions
An oracle is a mechanism for determining whether a program passed or failed a test.
Let’s check the English dictionary:
[mechanism] noun - a natural or established process by which something takes place or is brought about
The most known mechanism is set of software requirements.
Second definition:
An oracle is a reference program. If you gave same inputs to the software under test and the oracle, you can tell whether the software test passed by comparing its results to the oracle's.
[reference] noun - the sending of a matter for decision or consideration to some authority.
Terminology
SUT – system under test
Reference oracle – program that tester use as authority for SUT behaviour.
Comparator – computer or human tester that compares SUT and reference oracle behaviour
The Problem
Assumptions in both oracle definitions are wrong, consequences is that we have NON TESTABLE programs.
Comments are closed.