Retromorphic Testing: A New Approach to the Test Oracle Problem
Boxi Yu, Qiuyang Mang, Qingshuo Guo, Pinjia He

TL;DR
Retromorphic Testing introduces a novel black-box testing approach using inverse functions and dual-program structures to improve test oracle capabilities across various software types.
Contribution
It proposes a new testing methodology inspired by inverse functions, utilizing auxiliary programs for enhanced oracle construction in black-box testing.
Findings
Demonstrates three testing modes with diverse use cases
Validates correctness of mathematical functions like sine and arcsin
Applicable to algorithms, traditional software, and AI applications
Abstract
A test oracle serves as a criterion or mechanism to assess the correspondence between software output and the anticipated behavior for a given input set. In automated testing, black-box techniques, known for their non-intrusive nature in test oracle construction, are widely used, including notable methodologies like differential testing and metamorphic testing. Inspired by the mathematical concept of inverse function, we present Retromorphic Testing, a novel black-box testing methodology. It leverages an auxiliary program in conjunction with the program under test, which establishes a dual-program structure consisting of a forward program and a backward program. The input data is first processed by the forward program and then its program output is reversed to its original input format using the backward program. In particular, the auxiliary program can operate as either the forward or…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software System Performance and Reliability · Distributed systems and fault tolerance
