Proceedings of the 8th International Symposium on Future Software Technology (ISFST '04),
Software Engineers Association, Japan (2004)

Metamorphic Testing and Its Applications 1

Zhi Quan Zhou 2, 3 , De Hao Huang 2 , T.H. Tse 4 , Zongyuan Yang 5 , Haitao Huang 5 , and T.Y. Chen 2

[paper from ISFST 2004 | technical report TR-2004-12]


An "oracle" in software testing is a procedure by which testers can decide whether the output of the program under testing is correct. In some situations, however, the oracle is not available or too difficult to apply. This is known as the "oracle problem". In other situations, the oracle is often the human tester who checks the testing result manually. The manual prediction and verification of program output greatly decreases the efficiency and increases the cost of testing.

A metamorphic testing method has been proposed to test programs without the involvement of an oracle. It employs properties of the target function, known as metamorphic relations, to generate follow-up test cases and verify the outputs automatically. In this article, we shall present the concepts, procedures, and applications of metamorphic testing.

Keywords: Metamorphic testing, metamorphic relation, oracle, successful test case, automated testing, multiple executions.

1. This research is supported in part by a discovery grant of the Australian Research Council (project no. DP 0345147), a grant of the Research Grants Council of Hong Kong (project no. 714504), and a grant of The University of Hong Kong.
2. Centre for Software Analysis and Testing, Swinburne University of Technology, Hawthorn 3122, Australia.
3. (Corresponding author.)
School of Computer Science and Software Engineering, University of Wollongong, Wollongong, NSW 2522, Australia.
4. Department of Computer Science, The University of Hong Kong, Pokfulam, Hong Kong.
5. Department of Computer Science, East China Normal University, 3663 Zhongshan (N) Road, Shanghai 200062, China.


  Cumulative visitor count