  A test oracle determines whether a system behaves correctly for a given
input. Automatic testing techniques rely on an automated test oracle to test
the system without user interaction. Important families of automated test
oracles include Differential Testing and Metamorphic Testing, which are both
black-box approaches; that is, they provide a test oracle that is oblivious to
the system's internals. In this work, we propose Intramorphic Testing as a
white-box methodology to tackle the test oracle problem. To realize an
Intramorphic Testing approach, a modified version of the system is created, for
which, given a single input, a test oracle can be provided that relates the
output of the original and modified systems. As a concrete example, by
replacing a greater-equals operator in the implementation of a sorting
algorithm with smaller-equals, it would be expected that the output of the
modified implementation is the reverse output of the original implementation.
In this paper, we introduce the methodology and illustrate it via a set of use
cases.
