Oracle testing, in the context of software testing, refers to a technique where the expected outcomes of a system or software under test are compared with the actual outcomes produced during testing.
- Specifications: This involves comparing the actual behavior of the software with the expected behavior specified in the requirements documentation or other formal specifications.
- Previous Versions: Comparing the output of the current version of the software with the output of a previous version that is considered correct. This is often used in regression testing.
- Manual Review: Human judgment is used to determine whether the output of the software is correct. This approach is subjective and can be time-consuming, but it’s sometimes necessary for complex or non-deterministic systems.
- Automated Oracles: Oracles can also be built into automated test scripts. These oracles verify the correctness of the system’s output by comparing it against expected values or conditions programmed into the test scripts.