Shadow Symbolic Execution with Java PathFinder
Yannic Noller, Hoang Lam Nguyen, Minxing Tang, Timo Kehrer

TL;DR
This paper extends shadow symbolic execution to Java by integrating it with Java PathFinder, enabling effective regression testing through divergence detection in Java programs.
Contribution
It introduces a novel extension of shadow symbolic execution for Java, facilitating divergence detection and regression testing within the Java PathFinder framework.
Findings
Successfully generated test inputs exposing divergences in Java programs.
Extended JPF to support shadow symbolic execution on Java bytecode.
Demonstrated effectiveness on multiple JPF test classes.
Abstract
Regression testing ensures that a software system when it evolves still performs correctly and that the changes introduce no unintended side-effects. However, the creation of regression test cases that show divergent behavior needs a lot of effort. A solution is the idea of shadow symbolic execution, originally implemented based on KLEE for programs written in C, which takes a unifed version of the old and the new program and performs symbolic execution guided by concrete values to explore the changed behavior. In this work, we apply the idea of shadow symbolic execution to Java programs and, hence, provide an extension of the Java PathFinder (JPF) project to perform shadow symbolic execution on Java bytecode. The extension has been applied on several subjects from the JPF test classes where it successfully generated test inputs that expose divergences relevant for regression testing.
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
