Bridging the Gap between Unit Test Generation and System Test Generation
Alexander Kampmann, Andreas Zeller

TL;DR
This paper introduces a test generation bridge that combines the speed of unit testing with the accuracy of system testing by carving parameterized unit tests from system executions, enabling more effective bug detection.
Contribution
It proposes a novel framework that links system and unit test generation, allowing symbolic exploration of functions within recorded system contexts.
Findings
Higher coverage than state-of-the-art system test generators
Effective identification of true alarms through parameter lifting
Successful application to complex systems like Web/Python/SQLite/C stack
Abstract
Common test generators fall into two categories. Generating test inputs at the unit level is fast, but can lead to false alarms when a function is called with inputs that would not occur in a system context. If a generated input at the system level causes a failure, this is a true alarm, as the input could also have come from the user or a third party; but system testing is much slower. In this paper, we introduce the concept of a test generation bridge, which joins the accuracy of system testing with the speed of unit testing. A Test Generation Bridge allows to combine an arbitrary system test generator with an arbitrary unit test generator. It does so by carving parameterized unit tests from system (test) executions. These unit tests run in a context recorded from the system test, but individual parameters are left free for the unit test generator to systematically explore. This…
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.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software System Performance and Reliability · Software Reliability and Analysis Research
