Looking for MR? Ask MetWiki today!

What is “Oracle Problem”?

An “oracle” in software testing is a procedure by which testers can decide whether the output of the program under testing is correct. In some situations, however, the oracle is not available or too difficult to apply. This is known as the “Oracle Problem”.

How to alleviate it?

These applications exhibit properties such that if the input were modified in a certain way, it should be possible to predict some characteristics of the new output, given the output of the original input. This approach is known as Metamorphic testing(MT).

How to conduct MT?

Metamorphic testing can be implemented easily in practice. The key step is to identify a set of properties (“metamorphic relations”, or MRs) that relate multiple inputs and their outputs of the algorithm for the target program. Then, the source test cases and their corresponding follow-up test cases are constructed based on these MRs.We then execute all these test cases using the target program, and check whether the outputs of the source and follow-up test cases satisfy their corresponding MRs.


Numerical program

Machine learning



Web application

Optimization algorithms


Graph and Image