Metamorphic Testing

Metamorphic testing checks that the relationship between outputs for related inputs holds — useful when there is no oracle for the exact correct output.

Example: if sin(x) = sin(π − x), then testing sin(x) and sin(π − x) and comparing their results doesn’t require knowing the true value — only that they should be equal. A violation reveals a bug.

Generally used to reveal new errors in systems that lack a test oracle.