SEAICLCVOct 10, 2023

Retromorphic Testing: A New Approach to the Test Oracle Problem

arXiv:2310.06433v13 citationsh-index: 8
Originality Incremental advance
AI Analysis

This addresses the challenge of verifying software correctness in automated testing, particularly for black-box techniques, though it appears incremental as it builds on existing methods like metamorphic testing.

The paper tackles the test oracle problem in automated software testing by introducing Retromorphic Testing, a novel black-box methodology that uses an auxiliary program to create a dual-program structure for validating outputs, and demonstrates its application across various programs including algorithms and AI.

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 backward program, leading to different testing modes. The process concludes by examining the relationship between the initial input and the transformed output within the input domain. For example, to test the implementation of the sine function $\sin(x)$, we can employ its inverse function, $\arcsin(x)$, and validate the equation $x = \sin(\arcsin(x)+2kπ), \forall k \in \mathbb{Z}$. In addition to the high-level concept of Retromorphic Testing, this paper presents its three testing modes with illustrative use cases across diverse programs, including algorithms, traditional software, and AI applications.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes