DocumentCode :
3156524
Title :
Using JML Runtime Assertion Checking to Automate Metamorphic Testing in Applications without Test Oracles
Author :
Murphy, Christian ; Shen, Kuang ; Kaiser, Gail
Author_Institution :
Dept. of Comput. Sci., Columbia Univ., New York, NY
fYear :
2009
fDate :
1-4 April 2009
Firstpage :
436
Lastpage :
445
Abstract :
It is challenging to test applications and functions for which the correct output for arbitrary input cannot be known in advance, e.g. some computational science or machine learning applications. In the absence of a test Oracle, one approach to testing these applications is to use metamorphic testing: existing test case input is modified to produce new test cases in such a manner that, when given the new input, the application should produce an output that can be easily be computed based on the original output. That is, if input x produces output f(x), then we create input x\´ such that we can predict f(x\´) based on f(x); if the application or function does not produce the expected output, then a defect must exist, and either f(x) or f(x\´) (or both) is wrong. By using metamorphic testing, we are able to provide built-in "pseudo-oracles" for these so-called "nontestable programs" that have no test oracles.In this paper, we describe an approach in which a function\´s metamorphic properties are specified using an extension to the Java modeling language (JML), a behavioral interface specification language that is used to support the "design by contract" paradigm in Java applications. Our implementation, called Corduroy, pre-processes these specifications and generates test code that can be executed using JML runtime assertion checking, for ensuring that the specifications hold during program execution. In addition topresenting our approach and implementation, we also describe our findings from case studies in which we apply our technique to applications without test oracles.
Keywords :
Java; program testing; JML runtime assertion checking; Java modeling language; behavioral interface specification language; metamorphic testing; pseudo-oracles; Application software; Automatic testing; Computer science; Contracts; Data mining; Java; Machine learning; Runtime; Software testing; Specification languages; machine learning; oracle problem; software testing;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Testing Verification and Validation, 2009. ICST '09. International Conference on
Conference_Location :
Denver, CO
Print_ISBN :
978-1-4244-3775-7
Electronic_ISBN :
978-0-7695-3601-9
Type :
conf
DOI :
10.1109/ICST.2009.19
Filename :
4815377
Link To Document :
بازگشت