arrow
Return

Enumerating Valid Non-Alpha-Equivalent Programs for Interpreter Testing

delete2024-06-04
delete0
delete
OA
AI
X
Xinmeng Xia
Y
Yang Feng *
Q
Qingkai Shi
J
James A. Jones
X
Xiangyu Zhang
B
Baowen Xu
DOI:10.1145/3647994delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Skeletal program enumeration (SPE) can generate a great number of test programs for validating the correctness of compilers or interpreters. The classic SPE generates programs by exhaustively enumerating all possible variable usage patterns into a given syntactic structure. Even though it is capable of producing many test programs, the exhaustive enumeration strategy generates a large number of invalid programs, which may waste plenty of testing time and resources. To address the problem, this article proposes a tree-based SPE technique. Compared to the state-of-the-art, the key merit of the tree-based approach is that it allows us to take the dependency information into consideration when producing test programs and, thus, make it possible to (1) directly generate non-equivalent programs and (2) apply dominance relations to eliminate invalid test programs that have undefined variables. Hence, our approach significantly saves the cost of the naive SPE approach. We have implemented our approach into an automated testing tool, IFUZZER, and applied it to test eight different implementations of Python interpreters, including CPython, PyPy, IronPython, Jython, RustPython, GPython, Pyston, and Codon. In three months of fuzzing, IFUZZER detected 142 bugs, of which 87 have been confirmed to be previously unknown bugs, of which 34 have been fixed. Compared to the state-of-the-art SPE techniques, IFUZZER takes only 61.0% of the time cost given the same number of testing seeds and improves 5.3% source code function coverage in the same time budget of testing.
Keywords:
Interpreter testing
fuzz testing
program enumeration

Journal

A
ACM Transactions on Software Engineering and Methodology
IF:
6.2
Papers:
1.2K
Citations:
3.4K

Organization

University of California System cover
University of California System
Scholars:
37.5W
Papers: 33.7W
Citations: 6.6K
N
nanjing university
Scholars:
7.7W
Papers: 5.6W
Citations: 87
U
university of california irvine
Scholars:
2.3W
Papers: 1.7W
Citations: 55
researcher View more organizations