Metamorphic Runtime Checking of Non-Testable Programs

Christian Murphy; Gail E. Kaiser

Metamorphic Runtime Checking of Non-Testable Programs
Murphy, Christian
Kaiser, Gail E.
Technical reports
Computer Science
Persistent URL:
Columbia University Computer Science Technical Reports
Part Number:
Department of Computer Science, Columbia University
Publisher Location:
New York
Challenges arise in assuring the quality of applications that do not have test oracles, i.e., for which it is impossible to know what the correct output should be for arbitrary input. Metamorphic testing has been shown to be a simple yet effective technique in addressing the quality assurance of these "non-testable programs". In metamorphic testing, if test input x produces output f(x), specified "metamorphic properties" are used to create a transformation function t, which can be applied to the input to produce t(x); this transformation then allows the output f(t(x)) to be predicted based on the already-known value of f(x). If the output is not as expected, then a defect must exist. Previously we investigated the effectiveness of testing based on metamorphic properties of the entire application. Here, we improve upon that work by presenting a new technique called Metamorphic Runtime Checking, a testing approach that automatically conducts metamorphic testing of individual functions during the program's execution. We also describe an implementation framework called Columbus, and discuss the results of empirical studies that demonstrate that checking the metamorphic properties of individual functions increases the effectiveness of the approach in detecting defects, with minimal performance impact.
Computer science
Item views
text | xml
Suggested Citation:
Christian Murphy, Gail E. Kaiser, 2009, Metamorphic Runtime Checking of Non-Testable Programs, Columbia University Academic Commons, http://hdl.handle.net/10022/AC:P:9315.

Center for Digital Research and Scholarship at Columbia University Libraries | Policies