Carving Parameterized Unit Tests

Alexander Kampmann,Andreas Zeller
DOI: https://doi.org/10.48550/arXiv.1812.07932
2018-12-19
Abstract:We present a method to automatically extract ("carve") parameterized unit tests from system executions. The unit tests execute the same functions as the system tests they are carved from, but can do so much faster as they call functions directly; furthermore, being parameterized, they can execute the functions with a large variety of randomly selected input values. If a unit-level test fails, we lift it to the system level to ensure the failure can be reproduced there. Our method thus allows to focus testing efforts on selected modules while still avoiding false alarms: In our experiments, running parameterized unit tests for individual functions was, on average, 30~times faster than running the system tests they were carved from.
Software Engineering
What problem does this paper attempt to address?