2014 Software
VMVM: Unit Test Virtualization for Java (System Implementation)
Testing large software packages can become very time intensive. To address this problem, researchers have investigated techniques such as Test Suite Minimization. Test Suite Minimization reduces the number of tests in a suite by removing tests that appear redundant, at the risk of a reduction in fault-finding ability since it can be difficult to identify which tests are truly redundant. We take a completely different approach to solving the same problem of long running test suites by instead reducing the time needed to execute each test, an approach that we call Unit Test Virtualization. With Unit Test Virtualization, we reduce the overhead of isolating each unit test with a lightweight virtualization container. We describe the empirical analysis that grounds our approach and provide an implementation of Unit Test Virtualization targeting Java applications. We evaluated our implementation, VMVM, using 20 real-world Java applications and found that it reduces test suite execu! tion time by up to 97% (on average, 62%) when compared to traditional unit test execution. We also compared VMVM to a well known Test Suite Minimization technique, finding the reduction provided by VMVM to be four times greater, while still executing every test with no loss of fault-finding ability. This archive contains the implementation for VMVM.
Subjects
Files
-
vmvm-master.zip application/zip 4.09 MB Download File
Also Published In
- Related URL
- https://github.com/Programming-Systems-Lab/vmvm
More About This Work
- Academic Units
- Computer Science
- Published Here
- February 27, 2014
Related Items
Notes
This archive contains the system implementation for VMVM. For more information, please see the accompanying technical report publication in Academic Commons at https://doi.org/10.7916/D8988GDS.