2016/02/29 by Sergio Segura, Gordon Fraser, Ana B. Sánchez +3 · 545 citations
Computer Science · #Advanced Malware Detection Techniques #Computer science #Geology #Metamorphic rock #Programming language #Software #Software Reliability and Analysis Research #Software Testing and Debugging Techniques #Software engineering #Software testing
paper · doi:10.1109/tse.2016.2532875
published in IEEE Transactions on Software Engineering 42(9), 805-824 (IEEE Computer Society)
openalex publication_date 2016/02/29 · openalex created_date 2025/10/10 · openalex updated_date 2026/08/05
A test oracle determines whether a test execution reveals a fault, often by comparing the observed program output to the expected output. This is not always practical, for example when a program's input-output relation is complex and difficult to capture formally. Metamorphic testing provides an alternative, where correctness is not determined by checking an individual concrete output, but by applying a transformation to a test input and observing how the program output “morphs” into a different one as a result. Since the introduction of such metamorphic relations in 1998, many contributions on metamorphic testing have been made, and the technique has seen successful applications in a variety of domains, ranging from web services to computer graphics. This article provides a comprehensive survey on metamorphic testing: It summarises the research results and application areas, and analyses common practice in empirical studies of metamorphic testing as well as the main open challenges.