  Metamorphic Testing is a software testing paradigm which aims at using
necessary properties of a system-under-test, called metamorphic relations, to
either check its expected outputs, or to generate new test cases. Metamorphic
Testing has been successful to test programs for which a full oracle is not
available or to test programs for which there are uncertainties on expected
outputs such as learning systems. In this article, we propose Adaptive
Metamorphic Testing as a generalization of a simple yet powerful reinforcement
learning technique, namely contextual bandits, to select one of the multiple
metamorphic relations available for a program. By using contextual bandits,
Adaptive Metamorphic Testing learns which metamorphic relations are likely to
transform a source test case, such that it has higher chance to discover
faults. We present experimental results over two major case studies in machine
learning, namely image classification and object detection, and identify
weaknesses and robustness boundaries. Adaptive Metamorphic Testing efficiently
identifies weaknesses of the tested systems in context of the source test case.
