Debugging the Performance of Maven's Test Isolation: Experience Report
Testing is the most common approach used in industry for checking software correctness. Developers frequently practice reliable testing-executing individual tests in isolation from each other-to avoid test failures caused by test-order dependencies and shared state pollution (e.g., when tests mutate static fields). A common way of doing this is by running each test as a separate process. Unfortunately, this is known to introduce substantial overhead. This experience report describes our efforts to better understand the sources of this overhead and to create a system to confirm the minimal overhead possible. We found that different build systems use different mechanisms for communicating between these multiple processes, and that because of this design decision, some build systems could be faster than others. Through this inquiry we discovered a significant performance bug in Apache Maven’s test running code, which slowed down test execution by on average 300 milliseconds per-test when compared to a competing build system, Ant. When used for testing real projects, this can result in a significant reduction in testing time. We submitted a patch for this bug which has been integrated into the Apache Maven build system, and describe our ongoing efforts to improve Maven’s test execution tooling.
Tue 21 Jul Times are displayed in time zone: (GMT-07:00) Tijuana, Baja California change
|12:10 - 12:30|
|12:30 - 12:50|
Rahul GopinathCISPA Helmholtz Center for Information Security, Alexander KampmannCISPA Helmholtz Center for Information Security, Nikolas HavrikovCISPA Helmholtz Center for Information Security, Ezekiel O. SoremekunCISPA Helmholtz Center for Information Security, Andreas ZellerCISPA Helmholtz Center for Information Security
|12:50 - 13:10|