Metamorphic testing can trace its roots back to the paper “[Metamorphic testing: A new approach for generating next test cases](https://arxiv.org/abs/2002.12543)'', T.Y. Chen; S.C. Cheung; S.M. Yiu (1998). A key insight is the idea that one or more invariants should hold while varying one or more parameters.
Unlike other testing techniques, metamorphic testing does not rely on knowing the test case inputs and expected values a priori. Put differently, it avoids the need for maintaining an expensive [test oracle](https://en.wikipedia.org/wiki/Test_oracle). This becomes more important as the API surface area grows and increases in complexity. Rather than rely on an oracle, multiple test outputs are checked for equivalence while varying the set of parameters, given the same sequence of inputs.