  Metamorphic Testing (MT) alleviates the oracle problem by defining oracles
based on metamorphic relations (MRs), that govern multiple related inputs and
their outputs. However, designing MRs is challenging, as it requires
domain-specific knowledge. This hinders the widespread adoption of MT. We
observe that developer-written test cases can embed domain knowledge that
encodes MRs. Such encoded MRs could be synthesized for testing not only their
original programs but also other programs that share similar functionalities.
  In this paper, we propose MR-Scout to automatically synthesize MRs from test
cases in open-source software (OSS) projects. MR-Scout first discovers
MR-encoded test cases (MTCs), and then synthesizes the encoded MRs into
parameterized methods (called codified MRs), and filters out MRs that
demonstrate poor quality for new test case generation. MR-Scout discovered over
11,000 MTCs from 701 OSS projects. Experimental results show that over 97% of
codified MRs are of high quality for automated test case generation,
demonstrating the practical applicability of MR-Scout. Furthermore,
codified-MRs-based tests effectively enhance the test adequacy of programs with
developer-written tests, leading to 13.52% and 9.42% increases in line coverage
and mutation score, respectively. Our qualitative study shows that 55.76% to
76.92% of codified MRs are easily comprehensible for developers.
