A test oracle is a source of expected results for a test case. The following micro patterns for test oracles are presented in Testing Object-Oriented Systems: Models, Patterns, and Tools.
Oracle Patterns (micro-pattern schema) | ||
Approach | Pattern Name | Intent |
Judging | Judging | The tester evaluates pass/no-pass by looking at the output on a screen, a listing, using a debugger, or another suitable human interface. |
Pre-Specification | Solved Example | Develop expected results by hand or obtain from a reference work. |
Simulation | Generate exact expected results with a simpler implementation of the IUT (e.g., a spreadsheet.) | |
Approximation | Develop approximate expected results by hand or with a simpler implementation of the IUT. | |
Parametric | Characterize expected results for a large number of items by parameters | |
Gold Standard | Trusted System | Run new test case against a trusted system to generate results. |
Parallel Testing | Run the same live inputs into the IUT and a trusted system. Compare the output. | |
Regression Testing | Run an old test suite against a partially new system. | |
Voting | Compare the output of several versions of the IUT. | |
Organic | Smoke Test | Use the basic operability checks of the run time environment. |
Reversing | Reverse the IUT's transformation. | |
Built-in Test | Don't develop expected results. Implement assertions that define valid and invalid results. | |
Executable Specification | Actual input values and output values are used to instantiate the parameters of an executable specification. A specification checker will reject an instantiation which is inconsistent, indicating incorrect output. | |
Built-in Check | Compare expected and actual total, checksum, or similar encoding. | |
Generated Implementation | Generate a new implementation from a specification, compare output from the IUT and the generated IUT for the same test case. | |
Different But Equivalent | Generate message sequences that are different but should have the result; run on separate objects and compare for equality. |