Metamorphic Testing and Its Applications

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 no t 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 greatl y 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 auto∗ c 2004 Software Engineering Association, Japan. This material is presented to ensure timely dissemination of scholarly and technical work. Personal use of this material is permitted. Copyright and all r ights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author’s copyright. In most cases, these works ma y not be reposted without the explicit permission of the copyright holder. Permission to reprint/republish this material for advertising or promot ional purposes or for creating new collective works for resale or redistribut ion to servers or lists, or to reuse anyrcopyrighted component of this work in other works must be obtained from the Software Engineers Association, Japan. † This research is supported in part by a discovery grant of the Aus

[1]  Derrick G. Kourie,et al.  Software testing using model programs , 2001, Softw. Pract. Exp..

[2]  Elaine J. Weyuker,et al.  On Testing Non-Testable Programs , 1982, Comput. J..

[3]  Tsong Yueh Chen,et al.  Fault-based testing without the need of oracles , 2003, Inf. Softw. Technol..

[4]  Tsong Yueh Chen,et al.  Metamorphic testing of programs on partial differential equations: a case study , 2002, Proceedings 26th Annual International Computer Software and Applications.

[5]  Arnaud Gotlieb,et al.  Automated metamorphic testing , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[6]  William E. Howden,et al.  Reliability of the Path Analysis Testing Strategy , 1976, IEEE Transactions on Software Engineering.

[7]  Ying Liu,et al.  Metamorphic Testing and Testing with Special Values , 2004, SNPD.

[8]  Brent Hailpern,et al.  Software debugging, testing, and verification , 2002, IBM Syst. J..

[9]  Manuel Blum,et al.  Designing programs that check their work , 1989, STOC '89.

[10]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[11]  Larry J Morell,et al.  A Theory of Fault-Based Testing , 1990, IEEE Trans. Software Eng..

[12]  William M. Waite,et al.  Software manual for the elementary functions , 1980 .

[13]  Richard G. Hamlet,et al.  Predicting dependability by testing , 1996, ISSTA '96.

[14]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[15]  Manuel Blum,et al.  Self-Testing/Correcting with Applications to Numerical Problems , 1993, J. Comput. Syst. Sci..

[16]  Curtis F. Gerald,et al.  APPLIED NUMERICAL ANALYSIS , 1972, The Mathematical Gazette.

[17]  Manuel Blum,et al.  Self-testing/correcting with applications to numerical problems , 1990, STOC '90.

[18]  Paul Ammann,et al.  Data Diversity: An Approach to Software Fault Tolerance , 1988, IEEE Trans. Computers.