Comprehensive survey reveals the broad utility of metamorphic testing across software domains, highlighting its role in overcoming the test oracle problem.
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.
No takes yet. Share an insight, caveat, or question.
Segura et al. (2016) studied this question.
Synapse has enriched 4 closely related papers on similar clinical questions. Consider them for comparative context: